0

首先,我是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作为我们的模板但是......当我们的模板中我们需要显示多个模型时会发生什么?想象一下这个显示一个帖子列表,但我们想在这个模板中显示另一个列表,为此我们可以使用通用视图来做到这一点?还是我们必须像往常一样做?

4

1 回答 1

2

您可以向传递给模板的上下文添加其他信息,例如另一个不相关模型的列表。Django文档显示了以下示例:

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
于 2013-07-01T12:54:03.327 回答