我在models.py中限制某些表不能超过N行,所以我在保存数据之前检查它,但是当表已满时它也显示错误,但我尝试更改某些行。 / p>
有没有办法区分用户是否向数据库添加新数据或仅更改旧数据?
答案 0 :(得分:1)
在创建对象和更新对象时都会调用save
方法。
但是,在创建对象时,对象的pk
为None
,直到save
完成。因此,您可以做的是覆盖模型的save
方法,并检查保存的对象是否将pk
设置为None
。
即
def save(self, *args, **kwargs):
if self.pk == None:
# this object is being created
else:
# this object is being updated