如何操作此方法仅应用于新条目,并且没有先前的条目。
在管理员中,我将添加一条记录,此方法已正确应用。但是当我编辑同一条记录时,再次应用此方法。
def save(self):
p = Product.objects.last()
if p:
self.productnumber = 1000 + p.id
else:
self.productnumber = 1000
super(Product, self).save()
答案 0 :(得分:3)
有两种方式。
<强> 1。 post_save
强>
@receiver(post_save, sender= Product)
def my_callback(sender, instance, created, *args, **kwargs):
if created:
#new
else:
#update
<强> 2。检查主键是否存在
def save(self):
if self.pk: #or id
#update
else:
#new
答案 1 :(得分:2)
如果要在save()方法中执行某些代码,则只应检查是否存在主键。
def save(self):
if self.pk is None:
# Code for new objects
else:
# Code for existing objects