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

相关推荐
xcLeigh几秒前
Python入门:Python3 operator模块全面学习教程
开发语言·python·学习·教程·python3·operator
xcLeigh1 分钟前
Python小游戏实战:实现2048游戏小游戏附源码
python·游戏·教程·pygame·2048·python3
大叔带刺3 分钟前
使用python创建自己的专属星座签名APP:Name2Constell
开发语言·python·pygame
weixin_4684668519 分钟前
Markitdown 文档解析快速入门指南
开发语言·python·自动化·编程
我材不敲代码22 分钟前
Python基础:注释的写法(单行、多行、文档注释)
服务器·python·microsoft
海鸥-w22 分钟前
前端学python 第一课安装python环境及开发工具下载安装
python
浮生望24 分钟前
Prompt Engineering 实战指南:用 DeepSeek API 写出高质量提示词
python·llm
To_OC35 分钟前
Python 字典和集合,原来底层是这么玩的
python
星卯教育tony43 分钟前
CIE中国电子学会2026年3月c++ Python scratch 机器人真题试卷含参考答案
c++·python·scratch·电子学会
linksinke1 小时前
在 CentOS 7.x 外网环境离线构建便携式 Python 3.11.4 的方案参考
linux·python·centos