django 中用于简单通用视图的 extra_context 函数
Posted
技术标签:
【中文标题】django 中用于简单通用视图的 extra_context 函数【英文标题】:extra_context function for simple generic view in django 【发布时间】: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 的经验,所以也许有更好的方法来传递侧边栏的建议。也许可以使用包装视图功能来做到这一点,因为我想有建议..
【问题讨论】:
【参考方案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
)。
【讨论】:
以上是关于django 中用于简单通用视图的 extra_context 函数的主要内容,如果未能解决你的问题,请参考以下文章