b3a*_*ast 5 python django django-templates django-views
我想在模板中显示以下两个视图index.html
.
class IndexView(generic.ListView):
template_name = 'items/index.html'
context_object_name = 'popular_items_list'
def get_queryset(self):
return Item.objects.order_by('-rating')[:5]
class tryView(generic.ListView):
template_name = 'items/index.html'
context_object_name = 'latest_items_list'
def get_queryset(self):
return Item.objects.order_by('pub_date')[:5]
Run Code Online (Sandbox Code Playgroud)
有没有办法将这两个视图合并为一个视图?
我该如何显示两个查询集index.html
?
是否可以Item.objects.all()
在模板中发送所有和过滤器?
这里有几个问题,让我先回答一下.
您可以get_context_data
在一个视图中覆盖并添加模板的上下文以获取更多项目.例如...
class IndexView(generic.ListView):
template_name = 'items/index.html'
context_object_name = 'popular_items_list'
def get_queryset(self):
return Item.objects.order_by('-rating')[:5]
def get_context_data(self, *args, **kwargs):
context = super(IndexView, self).get_context_data(*args, **kwargs)
context['moreItems'] = Item.objects.order_by('pub_date')[:5]
return context
Run Code Online (Sandbox Code Playgroud)
这样,您可以根据需要在页面/模板上包含多个查询集.在此示例moreItems
中,您的模板中将提供该示例popular_items_list
关于第二个问题,是的,您可以传入URL参数并使用它们来过滤查询集.我建议阅读这个.
归档时间: |
|
查看次数: |
3272 次 |
最近记录: |