在 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
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