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

相关推荐
我是海飞34 分钟前
Tensorflow Lite 的yes/no语音识别音频预处理模型训练教程
python·学习·tensorflow·音视频·嵌入式·语音识别
know__ledge40 分钟前
Python学习3.0使用Unittest框架运行测试用例
python·学习·测试用例
Lilixxs1 小时前
VBA 中使用 ADODB 操作 SQLite 插入中文乱码问题
数据库·中间件·sqlite·乱码·vba·odbc·adodb
鲸落落丶1 小时前
finalize() 方法介绍
开发语言·python
HappyAcmen2 小时前
【自动化实战】Python操作Excel/WORD/PDF:openpyxl与docx库详解
python·自动化·excel
q567315232 小时前
无需Python:Shell脚本如何成为你的自动化爬虫引擎?
开发语言·爬虫·python·自动化·scala
aiden:)2 小时前
App UI 自动化环境搭建指南
运维·python·ui·appium·自动化
一杯敬朝阳 一杯敬月光4 小时前
记录下chatgpt的openai 开发过程
python·chatgpt·flask
云天徽上4 小时前
【数据可视化-106】华为2025上半年财报分析:用Python和Pyecharts打造炫酷可视化大屏
开发语言·python·华为·信息可视化·数据分析·pyecharts
极客小张5 小时前
【项目思路】基于STM32+ZigBee的智能家居--浴室场景设计
c语言·python·stm32·智能家居·课程设计·项目设计·企业项目