位置: 编程技术 - 正文

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队列只能一个个读取吗)

  • 小规模纳税人月销售额超过15万
  • 支付宝如何缴纳车辆购置税
  • 银行本票与银行本票存款的区别
  • 库存商品领用会计分录
  • 食堂没有发票怎么做账
  • 电子税务局如何变更财务负责人
  • 小规模建筑服务需要预缴增值税吗
  • 房产开发后自用需要交土地增值税吗
  • 职工薪酬会计准则
  • 五险一金可以在手机上交吗
  • 发票冲红重开摘要如何写合适?
  • 开发商买商铺
  • 股本权益性投资是什么
  • 销售货物并收取运费税率
  • 未确认融资费用借贷方向
  • 农村承包土地能卖土吗
  • 金税盘增值税普通发票红冲操作流程
  • 申报清单怎么写
  • 未到期责任准备金属于什么科目
  • 搅拌站需要什么土地
  • 对公账户上扣缴的税怎么做分录?
  • 农副产品免税怎么报税
  • 银行电子承兑如何撤回
  • 暂停装修
  • 预计应收账款余额
  • 外汇账户怎么开
  • 期初银行余额有误怎么调分录怎么写
  • 税款缴纳期初未缴税额
  • 金融租赁融资融物
  • 工作完工结算是什么意思
  • 母公司收取子公司管理费用比例
  • 专项储备怎么理解
  • 建筑劳务公司何去何从
  • 以前年度进项转出分录
  • php统计中文长度
  • vue3 script setup withdefault
  • 区块链技术开发入门
  • css添加边框阴影 立体效果
  • 递延所得税资产借贷方向
  • 销售额营业收入怎么填
  • 二手房过户需要户口本吗
  • 股东个人转让股权印花税能入账吗
  • 财务报表的作用包括?
  • 房产税如何申请减免
  • mysql查询重复的全部删除
  • 营业税改增值税时间
  • 辅导费入什么科目
  • 消费税的计税方式有哪几种?
  • 优惠券会计分录怎么做
  • 应缴纳房产税的房产
  • 所有者权益是什么意思
  • executesql 存储过程
  • window组策略
  • 联想电脑的样子
  • win8截屏在哪个文件夹
  • auto mac
  • surveyor.exe - surveyor是什么进程
  • hosts文件位置在哪
  • centos6.5双网卡绑定
  • win7系统局域网无法看到其他电脑
  • win7 显示日期
  • Win10预览版更新弹窗如何关闭
  • win7不激活怎么换壁纸
  • 安卓opengl es
  • unity怎么创建摄像机
  • angular之ng-template模板加载
  • css选择器类选择器
  • javascript中的闭包
  • shell脚本中执行命令语句
  • windowsxp命令行窗口怎么打开
  • 批处理系统的进程调度算法
  • js如何判断一个变量的类型
  • javascript选项
  • python语言文件
  • android多个dex
  • 国家税务局上的电子发票如何作废
  • 上海电子发票试点
  • 会计餐费费的会计分录
  • 中国的消费税率是多少
  • 2021边疆补助什么时候下来
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设