Python 如何在views.py/url.py中将ListView和DetailView作为参数传递?

Python 如何在views.py/url.py中将ListView和DetailView作为参数传递?,python,html,django,django-models,django-views,Python,Html,Django,Django Models,Django Views,我想在当前文章下显示NEXT POST和PREVIOUS POST标题,如下所示: 到目前为止,我一直在以如下方式从url.py传递DetailView对象: url.py url(r'^(?P<pk>\d+)$', DetailView.as_view(model = Post, template_name = 'blog/post.html')), url(r'^(?P<pk>\d+)$', views.post_details) post_details

我想在当前文章下显示
NEXT POST
PREVIOUS POST
标题,如下所示:

到目前为止,我一直在以如下方式从
url.py
传递DetailView对象:

url.py

url(r'^(?P<pk>\d+)$', DetailView.as_view(model = Post, template_name = 'blog/post.html')), 
url(r'^(?P<pk>\d+)$', views.post_details) 
post_details (request,pk):
return render(request, 'blog/post.html',{'message' : [Post.objects.all(),DetailView.as_view(model = Post)]})
但后来我意识到我无法获得显示它的帖子列表。所以我修改了
url.py
以重定向到
views.py
,其中包括

url.py

url(r'^(?P<pk>\d+)$', DetailView.as_view(model = Post, template_name = 'blog/post.html')), 
url(r'^(?P<pk>\d+)$', views.post_details) 
post_details (request,pk):
return render(request, 'blog/post.html',{'message' : [Post.objects.all(),DetailView.as_view(model = Post)]})
现在,当我尝试在
post.html
中使用字典时,我没有得到任何输出

如何将DetailView和ListView作为参数传递给
post.html
,以及如何提取它



已解决


我想你必须为此写下自己的观点。您正在搜索分页,django为此提供了一个很好的功能()

不需要,下一个和上一个都是可以作为额外上下文传递的内容,所有泛型视图上都有一个方法

def get_context_data(self, **kwargs):
     context = super().get_context_data(**kwargs)
     context['next_post'] = my_next_post
     context['prev_post'] = my_prev_post
     return context
然后,您可以在模板中使用
next_post
prev_post


有关检索下一篇和上一篇文章的至少一种方法,请参阅。

我认为这是针对当前分散在多个页面上的文章。“上一页/下一页”链接用于当前文章(下一页/上一页),而不是下一页/上一页。我已编辑了问题详细信息,现在包含图片。我想展示下一篇和上一篇文章的标题。啊,好的。。。那你就很好了,谢谢你的链接!我是初学者,所以这对我来说有点复杂。相反,我使用了在
url.py中传递的
pk
,然后使用
context=get\u object\u或_404(Post,id=pk)
views.py
中获取对象。通过递减和递增pk找到上一篇和下一篇文章。然后,使用render将所有内容传递给模板。这听起来复杂吗?