3.如何重写Django admin的保存行为

ModelAdmin有一个save_model方法,这个方法用于创建和更新模型对象,你可以自定义admin保存行为。

Hero模型有下面的字段:

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

如果你想Hero更新的时候,总是保存当前用户,你可以这样做:

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