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

相关推荐
nanawinona2 分钟前
先跑通小流程,再让 AI 和 Python 承接复杂量化
人工智能·python
DeepVisionary3 分钟前
8 月 20 款大模型同台:OpenAI 拆出三档家族,IBM 押注 512K 密集推理,Meta 回头开源 30B
python·自动化
未若君雅裁3 分钟前
自定义中间件:Node-style 与 Wrap-style 钩子全解析
python·中间件·langchain
奈斯先生Vector6 分钟前
本地图片识别怎么接入多模态 AI?用 Python API 理解 GPT-4o Vision 的真实工作流
开发语言·人工智能·windows·python·网络协议·http·aigc
测试老哥12 分钟前
Pytest 之assert断言的使用
自动化测试·软件测试·python·测试工具·测试用例·pytest·接口测试
活跃的煤矿打工人16 分钟前
【星海出品】SQLite的进阶操作
数据库·sqlite
Mr数据杨23 分钟前
【Codex】用智能助手问题反馈模块收集AI使用问题
人工智能·django·codex·项目开发
2601_9563198824 分钟前
先把交易想法说清,再让 Python 承接
人工智能·python
Swift社区38 分钟前
Wi-Fi 6 的核心技术特性
人工智能·python
accept 99%1 小时前
Lovart国内直通上线!可以来体验这款甜品“设计秘书”
python