重载changelist_view并调用super()会导致属性错误。
我正在创建一个超级基本的仪表板,并且我覆盖了ModelAdmin类的changelist_view方法。但是,此覆盖会导致错误"NoneType对象没有‘has _header’属性“。但是,除了覆盖changelist_view并调用超类之外,我实际上什么也没做--我还没有做任何更改。
在admin.py中
class SummaryAdmin(admin.ModelAdmin):
def changelist_view(self, request, extra_context=None):
response = super().changelist_view(request, extra_context)models.py中的相应模型
class Summary(Failure):
class Meta:
proxy = True
verbose_name = 'Failure Summary'
verbose_name_plural = 'Failures Summary'这就是管理模型的全部内容。当我尝试进入django管理面板时,我得到了属性错误。据我所知,这应该与不覆盖changelist_view没有什么不同,但如果我删除覆盖一切功能正常。
更新:我从options.py复制了changelist_view代码,而不是调用超类,我没有得到这个错误,所以我怀疑这与我调用超类的方式有关。
发布于 2019-01-18 01:38:16
上述代码的问题在于它缺少一个return语句。changelist_view返回一个响应,不返回的重载将导致各种错误。这是一个很容易犯的错误,如果您习惯于在忘记返回或与声明的类型不匹配时不允许编译的语言。
https://stackoverflow.com/questions/54241016
复制相似问题