【问题标题】:extra_context function for simple generic view in djangodjango 中用于简单通用视图的 extra_context 函数
【发布时间】:2014-06-08 19:10:18
【问题描述】:

我有我的页面,其中有我的帖子列表,我还希望有带有建议的侧边栏。我为我的帖子使用了通用 ListView,并且需要以某种方式传递建议,所以我使用了 extra_context,根据我读过的几个例子,它应该(?)像那样工作,但在模板中没有“建议”对象。

class PostList(generic.ListView):
    model = models.Post
    paginate_by = 10
    context_object_name = 'mj'
    def get_queryset(self):
        return models.Post.objects.filter(user = self.request.user)
    def extra_context(self):
        return {'suggestions':models.Pla.objects}

我没有使用 django 的经验,所以也许有更好的方法来传递侧边栏的建议。也许可以使用包装视图功能来做到这一点,因为我想有建议..

【问题讨论】:

    标签: python django generics view django-context


    【解决方案1】:

    基于类的视图不像旧的基于函数的通用视图那样使用extra_context。相反,执行此操作的常用方法是使用自定义 get_context_data 调用,如文档中所示:

    https://docs.djangoproject.com/en/dev/topics/class-based-views/generic-display/#adding-extra-context

    文档中的示例几乎正是您想要做的。您可能希望进一步遵循其示例并传入查询集 (models.Pla.objects.all()) 而不是管理器对象 (models.Pla.objects)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-23
      • 2014-07-15
      • 1970-01-01
      • 2011-10-09
      • 2020-12-22
      • 2022-01-24
      • 2011-01-27
      • 2015-11-24
      相关资源
      最近更新 更多