如何重写并调用django admin中的response_change或response_add的super
我想在一个ModelAdmin中重写response_change
这个方法,以便更新父窗口中的一个字段。在完成更新后,我希望能把控制权交还给重写的response_change
。
我尝试过的一个简化版本是:
class MyModelAdmin(admin.ModelAdmin):
def response_change(self, request, obj):
// perfom my actions
super(MyModelAdmin, self).response_change(request, obj)
但是我遇到了一个AttributeError错误,提示'NoneType'对象没有'has_header'这个属性。可能是我没有正确使用super...?
3 个回答
0
你需要像下面这样返回 "super().response_change(request, obj)":
class MyModelAdmin(admin.ModelAdmin):
def response_change(self, request, obj):
// perfom my actions
return super().response_change(request, obj) # Here
0
你能不能提供一个更详细的错误追踪信息?
错误发生在哪里?你有创建响应吗?如果没有的话,get_response
可能会默默返回 None
,这样就会导致错误。
16
你需要把调用 super() 的结果返回出来。
return super(MyModelAdmin, self).response_change(request, obj)