django: 内联管理保存的处理器
当用户在我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 个回答
1
formset.save() 会返回一个列表,里面包含了所有来自这个表单集的对象。你可以用 commit=False 来调用它,这样的话,修改的内容只会被验证,但不会保存到数据库里。
save_formset() 这个函数只会被管理员调用(你可以在 Django 的源代码里查找一下)。