我正在努力使用Django中的组件。
我的项目: 我正在撰写一篇介绍当前博客文章的博客。在侧边栏中,我想要包含一个列出十个最新帖子和十个相关帖子的组件。这些组件中的每一个不仅是模板,还包括逻辑(我宁愿不使用模板标签包含在模板中)。
包含此类组件的最佳方式是什么?
答案 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 %}
如果您需要在多个页面上显示此信息,可以考虑通过上下文处理器添加它们。