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

时间:2016-12-19 10:49:38

标签: python django django-models uuid

self.pk is None无效,因为它是自动生成的。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

覆盖from_db

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

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

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

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