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类型。

相关推荐
chimchim6615 分钟前
Azure Data Factory (ADF)‌ 之databricks使用
后端·python·flask
ふり16 分钟前
测试的“三重境界”:黑盒、白盒、灰盒的对比与实践
网络·python·测试工具·需求分析
开源量化GO20 分钟前
多合约期货策略目标持仓怎么更新不容易乱
python·区块链
Sylvia33.37 分钟前
2026世界杯全套数据API接入教程:WebSocket实时进球推送实例
java·网络·python·websocket·网络协议
zyl8372137 分钟前
Python 线性代数:矩阵与向量
开发语言·python·机器学习
金銀銅鐵43 分钟前
用 Tkinter 实现一个简单的干支纪年计算器
后端·python
AC赳赳老秦1 小时前
OpenClaw+MySQL 深度应用:自动生成建表语句、索引优化建议与数据迁移脚本
开发语言·数据库·人工智能·python·mysql·算法·openclaw
西贝爱学习1 小时前
旅游推荐数据集.csv
python·数据集·旅游
qcx231 小时前
【AI Daily 2026-06-05】「持续迭代」已成为 2026 年 Agent 研究的核心命题
人工智能·python·agent
2601_961194021 小时前
2026四级词汇闪过电子版|高频词+真题词速记PDF
数据库·python·django·pdf·pygame