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}}