Django跨视图获取上下文数据

时间:2016-09-15 07:21:40

标签: python django python-3.x

我知道有几个通用视图,例如ListViewDetailView或简称View。 问题是我是否可以实际获取在BaseMixin的{​​{1}}中声明的上下文数据,并在没有覆盖get_context_data()的视图中使用它? 例如:

get_context_data()

扩展此 class BaseMixin(object): def get_context_data(self, *args, **kwargs): context = super(BaseMixin, self).get_context_data(**kwargs) context['test'] = 1 return context 的视图:

BaseMixin

即使将class FooView(BaseMixin, View): def foo(self, request): context = super(BaseMixin, self).get_context_data(**kwargs) # do something return 作为参数放在**kwargs中,这实际上也无法正常工作。错误是foo()。 那么有没有办法获得'super' object has no attribute 'get_context_data'BaseMixin中设置的上下文数据?

感谢您的回答:)

1 个答案:

答案 0 :(得分:2)

感谢@Sayes和所有回答海报,我终于解决了这个问题。 根据我的想法,问题实际上在BaseMixinBaseMixin的继承类,object,没有get_context_data()函数,就像@ Sayes评论道。 用object替换这个ContextMixin后,一切都很完美,至少目前是完美的。

以下是修改后的BaseMixin

class BaseMixin(ContextMixin):
    def get_context_data(self, *args, **kwargs):
        # do something
        return context
相关问题