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

相关推荐
studytosky17 小时前
深度学习理论与实战:Pytorch基础入门
人工智能·pytorch·python·深度学习·机器学习
TangDuoduo000517 小时前
【SQLite3 C语言接口】
数据库·sqlite
长不大的蜡笔小新17 小时前
手写数字识别:从零搭建神经网络
人工智能·python·tensorflow
前进的李工18 小时前
LeetCode hot100:094 二叉树的中序遍历:从递归到迭代的完整指南
python·算法·leetcode·链表·二叉树
ins_lizhiming18 小时前
在华为910B GPU服务器上运行DeepSeek-R1-0528模型
人工智能·pytorch·python·华为
bwz999@88.com19 小时前
win10安装miniforge+mamba替代miniconda
python
std787919 小时前
用PYTHON实现俄罗斯方块游戏案例
python·游戏·pygame
许泽宇的技术分享20 小时前
当AI学会“说人话“:Azure语音合成技术的魔法世界
后端·python·flask
光泽雨21 小时前
python学习基础
开发语言·数据库·python