检查对象是否为新对象的常见模式是测试:
self.pk is not None
如 In a django model custom save() method, how should you identify a new object? 中所述
但是当对象与其他对象处于一对一关系时,情况就不是这样了,比如:
class X(models.Model):
bla = models.OneToOneField(Bla)
然后如果我想创建这个对象实例并将它保存到数据库,我必须这样做:
x = X(bla=someBla)
x.save()
并且从一开始 x.pk 就不是 null 而是 x.pk = someBla.pk。
那么有没有可能检查这样的对象是新的还是编辑过的?
最佳答案
new = not bool(X.objects.filter(pk=self.pk).count())
关于python - 检查具有 OneToOneField 的对象是新的还是已经存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15023443/