django:内联管理员保存的处理程序

时间:2011-12-05 22:58:10

标签: python django django-admin

当用户点击我的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。

1 个答案:

答案 0 :(得分:1)

来自formset的

formset.save()returns a list of all objects。您可以使用 commit = False 调用它,并且只会验证更改,而不会保存在数据库中。

save_formset()仅由admin调用(你可以在django的源代码中执行grep)。