【问题标题】:Use components in Django Framework在 Django 框架中使用组件
【发布时间】:2018-06-05 20:48:07
【问题描述】:

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

我的项目: 我正在开发一个展示当前博客文章的博客。在侧边栏中,我想包含一个组件,其中列出了十个最新帖子和十个相关帖子。这些组件中的每一个不仅是模板,而且还包含逻辑(我宁愿不使用模板标签将其包含在模板中)。

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

【问题讨论】:

    标签: python django


    【解决方案1】:

    如果您使用 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 %}
    

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

    【讨论】:

      猜你喜欢
      • 2014-11-06
      • 1970-01-01
      • 1970-01-01
      • 2015-09-13
      • 1970-01-01
      • 2017-10-24
      • 2021-09-04
      • 2020-03-22
      • 1970-01-01
      相关资源
      最近更新 更多