首页 > 解决方案 > 当我只尝试编辑时,Django Admin save_model() 创建一个新对象

问题描述

我最初的问题是我试图将当前用户附加到新条目,所以我覆盖了下面的save_model方法admin.ModelAdmin

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

当我尝试在我的数据库中创建新对象或新条目时,这很有效,但是当我尝试编辑现有对象时,它仍然会创建一个新条目

我的模型看起来像(我去掉了所有的设置以避免在这里变得凌乱)

class AppUser(models.Model):
    app_name = model.CharField()
    submit_usr = models.ForeignKey()
    submit_date = model.DateTimeField()

我知道changearg 表示现有条目是否发生变化,但我仍然没有办法告诉 Django 我只想修改当前条目而不是创建新条目。

任何想法如何实现这一目标?

标签: djangodjango-admin

解决方案


你可以试试

def save_model(self, request, obj, form, change):
    if not change:
        obj.submit_usr = request.user
    super().save_model(request, obj, form, change)

推荐阅读