1

我有我的页面,其中有我的帖子列表,我还希望有带有建议的侧边栏。我为我的帖子使用了通用 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 的经验,所以也许有更好的方法来传递侧边栏的建议。也许可以使用包装视图功能来做到这一点,因为我想提出建议..

4

1 回答 1

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)。

于 2014-06-08T19:25:42.037 回答