美文网首页
Django 使用uuid作主键

Django 使用uuid作主键

作者: 程序_影子 | 来源:发表于2022-03-14 14:12 被阅读0次

    在实际开发中,我们有时需要使用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

    相关文章

      网友评论

          本文标题:Django 使用uuid作主键

          本文链接:https://www.haomeiwen.com/subject/hyherrtx.html