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

时间:2018-07-06 14:30:07

标签: 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)

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

我的模型看起来像(为了避免在这里弄乱,我删除了所有设置)

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

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

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

1 个答案:

答案 0 :(得分:0)

您可以尝试

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