所以我正在挖掘Django的源代码并遇到了这两个:
views.generic.list.py
和views.generic.base.py
所以这是base.py
的{{1}}方法ContextMixin
中的第26行
get_context_data
if self.extra_context is not None:
kwargs.update(self.extra_context)
return kwargs
({1}}中的第9行)继承MultipleObjectMixin
并在覆盖的list.py
方法中调用父类的方法(ContextMixin
中的第136行)< / p>
因此get_context_data
变量应该起作用,并为使用list.py
的类中传递给模板引擎的字典添加额外的上下文。
但我查询的问题表明extra_context
不再受支持,我运行的代码不起作用,我不得不覆盖MultipleObjectMixin
得到我想要的,有没有人有任何解释关于这个?
P.S。 我在我的系统上检查了已安装的源代码,它与github代码不同,所以我现在的问题是为什么最新发布的版本背后的存储库?
答案 0 :(得分:0)
我想我看到一个关于extra_context
的问题,这是关于Djnago 1.5或者接近它的东西,所以我认为这个功能已经存在并被删除了,这给我的印象是主分支落后于最新发布
但看起来,@ knbk指出,它是一个新增加的(或者可能是复活的)功能。
所以,我想这解释了一切。我很乐意接受任何更完整的答案,如果有人有:)或者我会自己回答这个问题。