基于Django类的视图合成

Ken*_*zic 13 django view composite django-class-based-views

我正在为项目使用Django 1.3的基于类的通用视图.他们真的很好,但我想成为DRYer.我有一个页面显示我们收到的新闻报道列表,另一个页面显示我们发布的文章列表.在概述页面上,我需要显示两个列表.我想创建一个复合视图,它接受两个视图并创建一个附加了两个查询集的上下文.

iJK*_*iJK 0

也许您可以重写 get_context_data 方法以将其他数据添加到上下文中?

 def get_context_data(self, **kwargs):

        context = super(AuthorListView, self).get_context_data(**kwargs)
        # Add in a QuerySet of all the books
        context['press_list'] = Press.objects.all()
        context['articles_list] = Article.objects.all()
        return context
Run Code Online (Sandbox Code Playgroud)

{{ press_list }}在您的模板中,您可以使用和获取新闻列表和文章列表{{ articles_list }}