Посты не отображаются на Djangohomepage при добавлении пагинации в постах и категориях
Я где-то ошибся и не понял. До пагинации мои все посты и категории работали правильно. После пагинации мои все предыдущие посты не отображаются. Я делюсь своими кодами, поэтому прошу помочь мне решить эту проблему.
views.py:
from django.shortcuts import render, redirect
from django.http import HttpResponse, HttpResponseRedirect
from blog.models import Post
from blog.models import Category
from .forms import ContactForm
from django.shortcuts import get_object_or_404
from django.views.generic.list import ListView
#from django.views import generic
from django.core.paginator import Paginator
from django.views import View
# Create your views here.
'''
# this is my older working code before pagination
def allpost(request):
#post = Post.objects.all()
post = Post.objects.all().order_by('-public_date')
# 'public_date' taken from 'ordering = ['-public_date']' from class meta in models.py
return render(request,'posts.html',{'posts':post})
'''
def allpost(request):
PostData = Post.objects.all().order_by('-public_date')
paginator = Paginator(PostData, 5)
page_number = request.GET.get('page')
PostDataFinal = paginator.get_page(page_number)
totalpage = PostDataFinal.paginator.num_pages
data = {
#'Post': PostDataFinal,
'PostData': PostDataFinal,
'lastpage': totalpage,
'totalpagelist': [n + 1 for n in range(totalpage)]
}
return render(request, 'posts.html', data)
def CategoryView(request, page): # here cats is same which mentioned in dynamic url.
category_posts = Post.objects.filter(category__title=cats)
paginator = Paginator(article_list, 2)
page_number = request.GET.get('page')
totalpages = paginator.get_page(page)
context = {
'category_posts':category_posts,
'lastpage':totalpages,
'articlespageslist':[n + 1 for n in range(totalpages)]
}
return render(request, 'categories.html', {context})
def detail(request,blog_id):
detail = get_object_or_404(Post, pk = blog_id)
return render(request,'details.html',{'post':detail})
urls.py:
from django.urls import path
from blog import views
from django.conf import settings
from django.conf.urls.static import static
from blog.views import successView
urlpatterns = [
path('',views.allpost,name="allpost"),
path('search', views.search, name="search"),
path('contact/', views.contact, name="contact"),
path('success/', views.successView, name="success"),
path('category/<str:cats>/', views.CategoryView, name ="category"),
path('category/page/<int:page>', views.CategoryView , name="category_list"),
path('<int:blog_id>/',views.detail,name="detail"),
] + static(settings.MEDIA_URL,document_root = settings.MEDIA_ROOT)
posts.html:-
Я запутался, пожалуйста, помогите мне найти проблему.