gpt4 book ai didi

python - 如何在 Django 模板中显示多个 View ?

转载 作者:太空狗 更新时间:2023-10-30 01:14:56 26 4
gpt4 key购买 nike

我想在模板 index.html 中显示以下两个 View 。

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]

有没有办法将这两个 View 合并为一个 View ?

我应该如何在 index.html 上显示两个查询集?

是否可以在模板中发送所有的 Item.objects.all() 和过滤器?

最佳答案

这里有几个问题,我先回答一下。

您可以覆盖 get_context_data 并在一个 View 中添加更多项目的模板上下文。例如……

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

这样您就可以根据需要在页面/模板中包含多个查询集。在此示例中,moreItems 将与 popular_items_list

一起在您的模板中可用

关于第二个问题,是的,您可以传入 URL 参数并使用它们来过滤查询集。我建议阅读此内容。

关于python - 如何在 Django 模板中显示多个 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26109083/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com