使用Django Framework中的组件

时间:2018-06-05 20:48:08

标签: python django

我正在努力使用Django中的组件。

我的项目: 我正在撰写一篇介绍当前博客文章的博客。在侧边栏中,我想要包含一个列出十个最新帖子和十个相关帖子的组件。这些组件中的每一个不仅是模板,还包括逻辑(我宁愿不使用模板标签包含在模板中)。

包含此类组件的最佳方式是什么?

1 个答案:

答案 0 :(得分:0)

如果您使用Django的基于课程的DetailView来显示您的博文,您可以添加要在get_context_data()模板中使用的额外信息,例如:

class BlogPostDetailView(DetailView):

    model = BlogPost

    def get_context_data(self, **kwargs):
        context = super(BlogPostDetailView, self).get_context_data(**kwargs)
        context['recent_posts'] = BlogPost.objects.filter(...)
        context['related_posts'] = BlogPost.objects.filter(...)
        return context

然后,您可以在模板中使用此信息,如下所示:

{% for related_post in related_posts %}
    ...
{% endfor %}

如果您需要在多个页面上显示此信息,可以考虑通过上下文处理器添加它们。