我知道有几个通用视图,例如ListView
,DetailView
或简称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
中设置的上下文数据?
感谢您的回答:)
答案 0 :(得分:2)
感谢@Sayes和所有回答海报,我终于解决了这个问题。
根据我的想法,问题实际上在BaseMixin
,BaseMixin
的继承类,object
,没有get_context_data()
函数,就像@ Sayes评论道。
用object
替换这个ContextMixin
后,一切都很完美,至少目前是完美的。
以下是修改后的BaseMixin
:
class BaseMixin(ContextMixin):
def get_context_data(self, *args, **kwargs):
# do something
return context