Django:返回正确的分页器页面
Django : go back to correct paginator page
我有一个简单的博客应用程序,它使用分页器列出文章。
我希望能够在文章详细信息页面中添加按钮,将用户引导至与本文所在的同一页面。
我想从当前 url 中获取 slug 并将其发送到分页器,以便它将用户定向到文章所在的 ?page=X。
我查看了分页器文档,但没有找到有关如何检索特定对象的页码的任何信息。
我的观点:
def blog(request):
posts = Article.objects.all()
paginator = Paginator(posts, 3)
page = request.GET.get('page')
posts = paginator.get_page(page)
return render(request,'blog.html',{'posts':posts})
def article_id(request,slug):
articleid = Article.objects.get(slug=slug)
return render(request, 'blogid.html', {'article':articleid})
我的 urls:
urlpatterns = [
url(r'^$', views.blog, name = 'blog'),
url(r'^(?P<slug>[\w-]+)/$', views.article_id, name = 'article_id'),
]
您可以通过
获取对象的位置
position=Article.objects.filter(your_filter_key=your_filter_value).order_by('other_filter_order').count()
然后通过
获取页码
items_per_page=yout_items_per_page
page = int(position/items_per_page)
在 Giancarlo 的回答的帮助下解决了。
我在下面添加到 article_id
def article_id(request,slug):
articleid = Article.objects.get(slug=slug)
position = Article.objects.filter(date__gt=articleid.date).count()
page = str(int((position)/3)+1)
return render(request, 'blogid.html', {'article':articleid, 'page':page})
然后在模板中 link 看起来像 /blog/?page={{page}}
我有一个简单的博客应用程序,它使用分页器列出文章。
我希望能够在文章详细信息页面中添加按钮,将用户引导至与本文所在的同一页面。
我想从当前 url 中获取 slug 并将其发送到分页器,以便它将用户定向到文章所在的 ?page=X。
我查看了分页器文档,但没有找到有关如何检索特定对象的页码的任何信息。
我的观点:
def blog(request):
posts = Article.objects.all()
paginator = Paginator(posts, 3)
page = request.GET.get('page')
posts = paginator.get_page(page)
return render(request,'blog.html',{'posts':posts})
def article_id(request,slug):
articleid = Article.objects.get(slug=slug)
return render(request, 'blogid.html', {'article':articleid})
我的 urls:
urlpatterns = [
url(r'^$', views.blog, name = 'blog'),
url(r'^(?P<slug>[\w-]+)/$', views.article_id, name = 'article_id'),
]
您可以通过
获取对象的位置position=Article.objects.filter(your_filter_key=your_filter_value).order_by('other_filter_order').count()
然后通过
获取页码items_per_page=yout_items_per_page
page = int(position/items_per_page)
在 Giancarlo 的回答的帮助下解决了。
我在下面添加到 article_id
def article_id(request,slug):
articleid = Article.objects.get(slug=slug)
position = Article.objects.filter(date__gt=articleid.date).count()
page = str(int((position)/3)+1)
return render(request, 'blogid.html', {'article':articleid, 'page':page})
然后在模板中 link 看起来像 /blog/?page={{page}}