Django使用UUID作为主键

Django这个框架,如果你在定义模型时没有显式的指定主键,那么它会贴心的送你一个自增的id主键:

python 复制代码
class SomeModel(model.Model):
    # 下面这个 id 字段是不需要写的,django 自动附送
    # id = models.AutoField(primary_key=True)

    ...

这个 id 主键从 1 开始计数,每有一条新的数据则 +1,保证了主键不重复。

通常你用这个自增主键就够了,但是有些情况下用它又不合适。

这时用 UUID 作为主键非常合适。 UUID 是一种全局唯一标识符,通常用32位的字符串来表现,像这样:9cd0c6fa-846e-11ea-8191-94e6f7639b8c ,它可以保证全球范围内的唯一性。

方法是这样:

python 复制代码
class User(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid1, editable=False)

注意:既然这里设置了UUID,那你数据库的类型就要变为varchar类型。

相关推荐
卷无止境4 小时前
Python能做嵌入式开发吗?一份写给动手派的生态与硬件全景图
后端·python
月光船幽幽8 小时前
检测用户意图复杂性的关键方法
人工智能·python
Mr数据杨10 小时前
【Codex】用学生入学评估模块建立新生能力画像
android·java·javascript·django·codex·项目开发
Mr数据杨10 小时前
【Codex】用部门管理模块维护组织架构与管理层级
架构·django·codex·项目开发
Mr数据杨11 小时前
【Codex】用附件管理模块统一维护系统文件资源
django·codex·项目开发
威联通网络存储11 小时前
TS-h3087XU-RP 汽车零部件质检追溯部署
python·汽车
你驴我11 小时前
WhatsApp 多账号场景下的会话归档与历史消息检索优化实践
后端·python
IT毕设实战小研11 小时前
基于安卓的空气质量查询系统
android·大数据·vue.js·爬虫·python·django·课程设计
harmful_sheep12 小时前
java group by常见用法
java·开发语言·python
whcyhhh12 小时前
头歌实践教学平台:数据科学与大数据技术导论(十六)
大数据·开发语言·python