位置: 编程技术 - 正文

django model去掉unique_together报错的解决方案(django modelform)

编辑:rootadmin

推荐整理分享django model去掉unique_together报错的解决方案(django modelform),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:django的models,django unicorn,django unicorn,django modelviewset,django models.py,django modelform,django中的model,django modelform,内容如对您有帮助,希望把文章链接给更多的朋友!

事情是这样的,我有一个存储考试的表

category 表示考试的类型, date 表示考试的日期。建表的时候考虑到一个类型的考试在同一个应该只有一个考试,所以就加了一个 unique_together 。但是由于业务需要,这个 unique_together 不需要了。

用过 django 的人都知道,这不是个大问题,删掉 unique_together 的代码,然后 makemigrations 呗,确实,我就这么做了。但是当我 migrate 的时候却报错了,错误如下:

数据库不让我删除这个 index ,并且告诉我有一个 外键约束 用到了这个它。我就奇怪了,category是外键没错,但是我这个是 unique_together 啊,怎么可能有哪个外键用到了它呢?

django model去掉unique_together报错的解决方案(django modelform)

没办法,我只能到数据库里寻找答案, show create table exam ,输出如下:

可以看到 UNIQUE KEY 那一行就是 unique_together ,下面一行是 category 外键。没有其他东西了啊,到底哪个外键用到了我们的 unique_together ?

外键只能是 category 了,也没有别的外键啊。到底是怎么回事呢?

原因是这样的: 在Mysql中外键会自动在表上添加一个index ,也就说如果没有unique_together,我们的表应该是这样的:

但是因为有了 unique_together 的 unique_key ,并且 category 在联合索引的左边,根据 最左前缀 原则, category 的索引就有了,所以就不会另外建索引,这个时候 category 的外键约束就依赖了这个 unique_key ,所以删除的时候会出现那样的报错。

机智的小伙伴应该想到了,如果我们要去掉 unique_together ,我们可以将 category 的 KEY 加回去,这样就可以将 unique_together 删掉了。 sql 如下:

这样,migrate就能成功了。

python 队列详解及实例代码 队列特性:先进先出(FIFO)——先进队列的元素先出队列。来源于我们生活中的队列(先排队的先办完事)。Queue模块最常与threading模块一起构成生产-消

python 异常处理总结 最近,做个小项目经常会遇到Python的异常,让人非常头疼,故对异常进行整理,避免下次遇到异常不知所措,以下就是对Python异常进行的整理。1.Python异

Python 序列的方法总结 最近在做Python的项目,特地整理了下Python序列的方法。序列sequence是python中最基本的数据结构,本文先对序列做一个简单的概括,之后简单讲解下所有序

标签: django modelform

本文链接地址:https://www.jiuchutong.com/biancheng/384428.html 转载请保留说明!

上一篇:django批量导入xml数据(django批量上传图片)

下一篇:python 队列详解及实例代码(python队列只能一个个读取吗)

  • 怎么添加临时办社保卡
  • 提存金属于职工薪酬吗
  • 自然人扣缴系统初次登录怎么设置密码
  • 5个点的税点
  • 发票报送日志不完整
  • 期间费用的界定
  • 项目部电缆属于固定资产吗
  • 企业跨年补开发票
  • 资产负债表总账科目有哪些
  • 收取违约金如何开具发票
  • 接收抵债资产税费
  • 合伙企业个人所得税怎么申报
  • 原始凭证怎么做账
  • 减少实收资本会引起资产和所有者权益发生变化吗
  • 税务登记号和统计号区别
  • 公司净资产怎么算的
  • 个人借款利息收入增值税税率
  • 居民企业的判定条件
  • 工商年报网上申报要钱吗
  • 办理转移登记需要什么资料
  • 旅游开发企业会计账务处理
  • 出租的设备
  • 押金少退侵犯了哪条法律
  • 银行存款收款凭证属于什么凭证
  • 冲减其他应收款摘要怎么写
  • 错账改正方法
  • 蓝桥杯等级
  • 挪威 北极熊
  • node.js最新版本
  • phpinfo页面
  • 固定资产售卖的账务处理
  • 不发放工资怎么办
  • 如何修改php网页内容
  • js怎么实现倒计时
  • win11电源高性能模式代码
  • Homoiconicity
  • python解密加密文件
  • 增值税 附加税
  • 固定资产原值怎么确定
  • 建筑劳务税率是13还是6
  • sql server评估期已过版本升级时重启失败
  • 侵权赔偿补偿金如何计算
  • 小规模纳税人如何申报增值税
  • 企业账户在银行买黄金可以开发票吗
  • sql server 排名函数
  • 购入不动产的税率是多少
  • 有形动产经营性租赁光租业务是什么意思
  • 专项资金支出时间规定
  • 电子税务局实名核验失败
  • 用友t6操作流程
  • 重分类调整的内容包括什么
  • 存货成本主要包括
  • 汇兑损益方式为外币结清怎么操作
  • 转出未交增值税最终怎么转平
  • 支付国外客户佣金违法吗
  • 递延收益的主要形式有
  • 应付账款的贷方等于预收账款的借方
  • sql server数据库查询语句
  • centos安装教程详解
  • 硬盘格式 mac
  • windows media player找不到媒体流
  • linux创建个人主页
  • linux fdb表
  • linux怎么操作命令
  • win7系统步骤
  • nodejs word
  • android系统介绍
  • 希尔排序数据结构的代码
  • linux shell 循环语句
  • Unity3D游戏开发标准教程
  • 手把手教怎么说
  • Android自定义系统服务框架
  • 国税登录不了
  • 审计局查什么内容
  • 最新设立税务师事务条件
  • 税控盘登陆失败
  • 北京国税网上办税服务大厅
  • 出口退税申报已通过,又被删除,报关单号能用吗
  • 国有固定资产出租出借安全管理办法
  • 土地增值税分期清算条件?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设