在 django save() 方法中,如果 id 是 UUIDField,你应该如何识别一个新对象?

In a django save() method, how should you identify a new object if id is UUIDField?

self.pk is None 不起作用,因为它是自动生成的。

有什么想法吗?

覆盖from_db

@classmethod
def from_db(cls, db, field_names, values):
    instance = cls(*values)
    instance.saved = True
    return instance 

然后在您的保存方法中,当该项目已经保存在数据库中时,instance.saved 将可用。

 def save(self,*args,**kwargs):
     if hasttr(self,'saved'):
         print 'saved'

     super(MyModel,self).save(*args, **kwargs)
     self.saved = True