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)