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