检查对象是否为新对象的常见模式是测试:
self.pk is not None
如在 django 模型自定义 save() 方法中所述,您应该如何识别新对象?
但是当对象与其他对象一对一关系时,它就不是真的了,比如说:
class X(models.Model):
bla = models.OneToOneField(Bla)
然后,如果我想创建这个对象实例并将其保存到数据库中,我会这样做:
x = X(bla=someBla)
x.save()
而且 x.pk 从一开始就不是空的,而是 x.pk = someBla.pk 。
那么有没有可能检查这样一个对象是新的还是编辑过的?