在實(shí)際開(kāi)發(fā)中,我們有時(shí)需要使用UUIDField作為model的字段類型,下面簡(jiǎn)單介紹一下它的使用方法
一、作為主鍵使用
UUIDField作為主鍵使用,必須將primary_key設(shè)置為true,default也必須有默認(rèn)值,這里設(shè)置為uuid.uuid4
class CloudAccount(Model):
id = models.UUIDField(primary_key=True, max_length=LEN_LONG, default=uuid.uuid4, editable=False)
platform = models.CharField(_("云平臺(tái)"), max_length=LEN_SHORT)
project = models.CharField(_("項(xiàng)目"), max_length=LEN_SHORT)
name = models.CharField(_('名稱'), max_length=LEN_NORMAL, null=True, blank=True)
有一點(diǎn)必須注意,default不能設(shè)置為uuid.uuid4()
id = models.UUIDField(primary_key=True, max_length=LEN_LONG, default=uuid.uuid4(), editable=False)
因?yàn)閡uid.uuid4()返回的是一個(gè)確切的值,每次添加數(shù)據(jù)的時(shí)候默認(rèn)值都是這個(gè)值,而主鍵是必須有唯一性的,所以就會(huì)報(bào)錯(cuò)。而uuid.uuid4為一個(gè)方法,每次添加數(shù)據(jù)時(shí)都會(huì)生成一個(gè)新值,滿足需求。
二、作為非空字段, null設(shè)置為false
key = models.UUIDField(default=uuid.uuid4, null=False)
三、作為可為空的字段使用
pw = models.UUIDField(default=None, null=True, blank=True)
這里建議設(shè)置default=None