我希望在用户将更改保存到管理员模型后运行一些代码。为了解决这个问题,我知道扩展save_model
函数。如何让它执行super
中的所有代码,然后运行我的代码?
class ModelNameAdmin(admin.ModelAdmin):
list_display = ('demo_field_1', 'demo_field_2')
def save_model(self, request, obj, form, change):
# I want to run all the code from super here
# My code will follow...
当我覆盖save_model
函数时,它只会执行我的代码,不会形成super
。
答案 0 :(得分:2)
为super()
类调用ModelAdmin
并不复杂,它与您在Python中通常所做的相同。
class ModelNameAdmin(admin.ModelAdmin):
def save_model(self, request, obj, form, change):
super(ModelnameAdmin, self).save_model(request, obj, form, change)
# Your code will follow ...
然而,ModelAdmin.save_model
方法唯一能做的就是保存对象,所以你可能更喜欢这样做:
class ModelNameAdmin(admin.ModelAdmin):
def save_model(self, request, obj, form, change):
obj.save()
# Your code will follow ...
这是save_model
{{1}}中示例中使用的方法。