有没有办法区分用户是否将新数据添加到数据库或只是更改django中的旧数据?

时间:2014-12-12 20:59:51

标签: django django-models django-admin

我在models.py中限制某些表不能超过N行,所以我在保存数据之前检查它,但是当表已满时它也显示错误,但我尝试更改某些行。 / p>

有没有办法区分用户是否向数据库添加新数据或仅更改旧数据?

1 个答案:

答案 0 :(得分:1)

在创建对象和更新对象时都会调用save方法。

但是,在创建对象时,对象的pkNone,直到save完成。因此,您可以做的是覆盖模型的save方法,并检查保存的对象是否将pk设置为None

def save(self, *args, **kwargs):
    if self.pk == None:
        # this object is being created
    else:
        # this object is being updated