Django Admin Cookbook-40如何为Django Admin覆盖保存操作

40.如何为Django Admin后台覆盖保存操作?

ModelAdmin有一个save_model方法,用于创建和更新模型对象。通过覆盖此内容,您可以自定义admin的保存行为。

该Hero模型具有以下字段:

added_by = models.ForeignKey(settings.AUTH_USER_MODEL,
        null=True, blank=True, on_delete=models.SET_NULL)

如果你希望在Hero对象更新时始终保持为原有用户,则可以进行以下修改:

def save_model(self, request, obj, form, change):
    obj.added_by = request.user
    super().save_model(request, obj, form, change)

返回目录

相关推荐