django:如何为模型管理员挂钩保存按钮?

时间:2010-09-05 16:23:09

标签: django django-admin

我有一个带有“状态”字段的模型。当用户使用Admin应用程序修改实例时,如何挂钩“保存”按钮单击以便我可以将“状态”更新为依赖于登录用户的用户名的值?

4 个答案:

答案 0 :(得分:12)

覆盖你的modeladmin的save_model - 方法:

class ModelAdmin(admin.ModelAdmin):       
    def save_model(self, request, obj, form, change):
        user = request.user 
        instance = form.save(commit=False)
        if not change:    # new object
            instance.status = ....
        else:             # updated old object
            instance.status = ...
        instance.save()
        form.save_m2m()
        return instance

答案 1 :(得分:6)

使用pre_save signal。当然,它将在每个实例保存操作上调用,不仅来自管理员,还适用于您的情况。

答案 2 :(得分:4)

ModelAdmin.save_model()提供了我需要的东西

答案 3 :(得分:0)

form.cleaned_data.get('categories')

这直接在ModelAdmin.save_model中获取值