diff --git a/board/templates/board/board_detail.html b/board/templates/board/board_detail.html index 8affb5d..4fc02a2 100644 --- a/board/templates/board/board_detail.html +++ b/board/templates/board/board_detail.html @@ -66,19 +66,23 @@ {# Page footer #} {% endblock content %} \ No newline at end of file diff --git a/board/views.py b/board/views.py index b10826a..4afca0c 100644 --- a/board/views.py +++ b/board/views.py @@ -3,6 +3,7 @@ from django.http import Http404, HttpResponseRedirect from django.shortcuts import render, get_object_or_404 from django.views.generic import DetailView from django.views.generic.edit import CreateView +from django.urls import reverse from board.models import Post, Board from board.forms import PostForm, ReplyForm @@ -54,8 +55,16 @@ class BoardView(CreatePostView): slug_url_kwarg = "url" template_name = "board/board_detail.html" + def get(self, request, *args, **kwargs): + # If the page isn't set, then redirect to the /page/1 url + if "page" not in kwargs: + return HttpResponseRedirect( + reverse("board:board_detail", kwargs={"url": kwargs["url"], "page": 1}) + ) + return super(BoardView, self).get(request, *args, **kwargs) + def get_context_data(self, **kwargs): - page = self.kwargs.get("page", 1) + page = self.kwargs["page"] if page not in range(1, self.board.max_pages + 1): raise Http404()