Django 使用uuid作主鍵

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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容