当用户点击我的django网站的模型页面上的“保存”按钮时,我想要同时对所有要更新的模型执行某些操作。如果我覆盖save_model
,则每个对象调用一次,但是我希望调用一个函数来更新所有对象。我覆盖save_formset
,但它不起作用:
class ShadingAdmin(admin.ModelAdmin):
list_display = ('foo', 'bar', 'baz')
list_editable = ('bar', 'baz')
list_display_links = ('foo',)
def save_formset(self, request, form, formset, change):
print "FOO"
admin.site.register(Shading, ShadingAdmin)
"FOO"
永远不会打印出来。
我正在使用Django 1.2。
答案 0 :(得分:1)
formset.save()returns a list of all objects。您可以使用 commit = False 调用它,并且只会验证更改,而不会保存在数据库中。
save_formset()仅由admin调用(你可以在django的源代码中执行grep)。