django中简单通用视图的extra_context函数

时间:2014-06-08 19:10:19

标签: python django generics view django-context

我有我的页面,我有我的帖子列表,我也希望侧边栏有建议。我使用通用ListView作为我的帖子,并且需要以某种方式传递建议所以我使用了extra_context,根据我读过的几个例子,应该(?)工作,但在模板中没有'建议&#39 ;对象

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的经验所以也许有更好的方法来传递侧边栏的建议。也许我可以通过包装视图功能来实现这一点,因为我想提出建议..

1 个答案:

答案 0 :(得分:0)

基于类的视图不像旧的基于函数的通用视图那样使用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)。