当我只尝试编辑时,Django Admin save_model() 创建一个新对象

JCh*_*hao 2 django django-admin

我最初的问题是我试图将当前用户附加到新条目,所以我重写save_model下面的方法admin.ModelAdmin来执行

def save_model(self, request, obj, form, change):
    obj.submit_usr = request.user
    super().save_model(request, obj, form, change)
Run Code Online (Sandbox Code Playgroud)

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

我的模型看起来像(我取出了所有设置以避免这里混乱)

class AppUser(models.Model):
    app_name = model.CharField()
    submit_usr = models.ForeignKey()
    submit_date = model.DateTimeField()
Run Code Online (Sandbox Code Playgroud)

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

有什么想法如何实现这一目标吗?

UMA*_*MAR 5

你可以试试

def save_model(self, request, obj, form, change):
    if not change:
        obj.submit_usr = request.user
    super().save_model(request, obj, form, change)
Run Code Online (Sandbox Code Playgroud)