Django 使用uuid作主鍵


在實際開發中,我們有時需要使用UUIDField作為model的字段類型,下面簡單介紹一下它的使用方法

一、作為主鍵使用

UUIDField作為主鍵使用,必須將primary_key設置為true,default也必須有默認值,這里設置為uuid.uuid4

class CloudAccount(Model):
    id = models.UUIDField(primary_key=True, max_length=LEN_LONG, default=uuid.uuid4, editable=False)
    platform = models.CharField(_("雲平台"), max_length=LEN_SHORT)
    project = models.CharField(_("項目"), max_length=LEN_SHORT)
    name = models.CharField(_('名稱'), max_length=LEN_NORMAL, null=True, blank=True)

有一點必須注意,default不能設置為uuid.uuid4()

id = models.UUIDField(primary_key=True, max_length=LEN_LONG, default=uuid.uuid4(), editable=False)

因為uuid.uuid4()返回的是一個確切的值,每次添加數據的時候默認值都是這個值,而主鍵是必須有唯一性的,所以就會報錯。而uuid.uuid4為一個方法,每次添加數據時都會生成一個新值,滿足需求。

二、作為非空字段, null設置為false

key = models.UUIDField(default=uuid.uuid4, null=False)

三、作為可為空的字段使用

pw = models.UUIDField(default=None, null=True, blank=True)

這里建議設置default=None


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM