Django 中设置联合约束和联合索引

文本 复制代码
在Django 中对一张表的几个字段进行联合约束和联合索引,例如电商项目购物车的时候,登录的用户和商品两个字段在一起表示唯一记录。

联合约束参见unique-together官方文档。

举个联合约束和联合索引例子:

python 复制代码
class ShoppingCart(models.Model):
    """
    购物车
    """
    user = models.ForeignKey(User, verbose_name=u"用户", on_delete=models.CASCADE)
    goods = models.ForeignKey(Goods, verbose_name=u"商品", on_delete=models.CASCADE)
    nums = models.IntegerField(default=0, verbose_name="购买数量")

    add_time = models.DateTimeField(default=datetime.now, verbose_name=u"添加时间")

    class Meta:
        verbose_name = '购物车'
        verbose_name_plural = verbose_name
        # 数据库的联合约束,用户和商品唯一,不可重复
        unique_together = ("user", "goods")
        # 联合索引
        index_together = ["user", "goods"]

最终底层转化为sql语句,如下:

sql 复制代码
CREATE UNIQUE INDEX index_name ON trade_shoppingcart(user, goods);
相关推荐
凯瑟琳.奥古斯特12 小时前
Django Flask FastAPI 三者对比
开发语言·python·django·flask·fastapi
Betelgeuse7616 小时前
Django 中间件 4 大钩子 & CBV vs FBV 对比实战
python·中间件·django
北冥有羽Victoria1 天前
Django中间件实战:FBV/CBV日志全兼容
数据库·vscode·后端·python·django·sqlite·开源
源码之家3 天前
计算机毕业设计:Python中药材数据可视化与智能分析平台 Django框架 中药数据分析 医药数据分析数据分析 可视化 爬虫 (建议收藏)✅
python·深度学习·信息可视化·数据分析·django·课程设计
q_35488851533 天前
计算机毕业设计:Python中药材天地网数据挖掘与可视化系统 Django框架 中药数据分析 医药数据分析数据分析 可视化 爬虫 (建议收藏)✅
python·数据挖掘·数据分析·django·flask·课程设计
金玉满堂@bj3 天前
Django \+ MySQL 的标准 Web 项目搭建-初级练习小项目
前端·mysql·django
YJlio3 天前
2023-09-25:ChatGPT 开始支持“看、听、说”,从纯文本正式迈向多模态交互
人工智能·python·科技·chatgpt·django·交互·pygame
YJlio3 天前
7.4.5 Windows 11 企业网络连接与网络重置实战:远程访问、本地策略与故障恢复
前端·chrome·windows·python·edge·机器人·django
知识领航员3 天前
2026年推荐6个AI音乐工具
java·人工智能·python·eclipse·django·php·pygame
Mr数据杨3 天前
【Codex】用知识点配置模块构建考试与教学知识图谱
人工智能·django·知识图谱·codex·项目开发