我知道有几种通用视图,例如ListViewDetailView或只是View
问题是,我真的可以获取在BaseMixinget_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'
那么有没有办法获取在BaseMixinFooView中设置的上下文数据?

感谢您的回答:)

最佳答案

感谢@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

10-04 12:30