首先,我是Django
世界的初学者,所以也许我想做的事情是疯狂的,或者是对概念的误解,所以我们走了:
我们如何看待,通用视图为我们在模板中一直使用的常见模式节省了大量时间,其中之一是根据集合检索模型列表的ListView
属性
from models import Post
from django.views.generic import ListView, DetailView
class PostListView(ListView):
model = Post
template_name = 'blog/post_list.html'
我们绑定我们的Post
模型,将ListView
设置为post_list.html
作为我们的模板,但是......在我们的模板中,我们需要显示多个模型时会发生什么?想象一下这个展示了一个帖子列表,但我们想在这个模板中显示另一个列表,为此我们可以用通用视图做到这一点?或者我们必须像往常那样做?
答案 0 :(得分:2)
您可以向传递给模板的上下文添加其他信息,例如另一个不相关模型列表。 Django documentation显示了以下示例:
from django.views.generic import DetailView
from books.models import Publisher, Book
class PublisherDetail(DetailView):
model = Publisher
def get_context_data(self, **kwargs):
# Call the base implementation first to get a context
context = super(PublisherDetail, self).get_context_data(**kwargs)
# Add in a QuerySet of all the books
context['book_list'] = Book.objects.all()
return context