位置: 编程技术 - 正文

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

  • 动态市盈率与静态市盈率区别百度百科
  • 金税盘开票软件换电脑后怎么操作
  • 白条技巧
  • 月末在产品的原材料定额费用计算公式
  • 固定资产盘盈盘亏的会计科目
  • 小规模纳税人免税会计分录
  • 法人转钱进公账要交税吗
  • 增值税税控系统的税务处理
  • 税务稽查补缴的税款怎么处理
  • 已认证未抵扣进项税如何做账
  • 小规模纳税人的季度
  • 享受企业所得税税额抵免优惠的设备包括
  • 公司收到汽车理赔款
  • 外贸过程中的银行是什么
  • 如何解决win10系统复制文件速度
  • u盘启动器安装系统
  • 金融负债包括哪几项
  • 出口退税率和进项一致吗
  • 股东分红的会计科目怎么做
  • 如何在电脑管家下载软件
  • 缴纳公积金个人没有扣款怎么回事
  • 拍卖公司收入计入什么分录
  • win10版本2004和20h2
  • 增值税价外费用怎么算
  • 出租其取得的不动产是什么意思
  • 蝴蝶兰的养殖方法和注意事项视频
  • opware12.exe - opware12进程是什么文件 有什么用
  • 电脑开机按f8出现please select
  • 应付账款会计分离
  • 车辆赔偿款收条怎么写
  • 出现又离开
  • pa等比例缩放
  • 微信小程序登录的账号怎么注销
  • pytorch如何搭建神经网络
  • thinkphp5上传文件
  • java代理类是什么
  • vue解决跨域的几种办法
  • 公司注销税款太多
  • php不支持mysql
  • 织梦标签理解
  • 材料短缺计入成本吗
  • 通讯补贴算福利费吗
  • 管理费用二级科目明细可以自己设置吗
  • 股东投资款超过实收资本怎么处理
  • 运费和什么有关
  • 废品销售是否缴纳增值税
  • 使用正则表达式提取文本(888)555
  • 固定资产盘点盘什么
  • 公司支付款项制度
  • 销售返利及发票开具如何进行会计处理?
  • 短期借款财务处理
  • 房地产采取按揭销售的,其销售的入账时间为
  • 已认证发票红冲全流程操作
  • 工程中标费用放哪个科目
  • 股本权益性投资和股权投资有区别吗
  • 电商刷单的成本如何处理?
  • 以销定产会计怎么做账科目
  • 商会开年会费用怎么入账
  • 该卡已在其他账户中存在什么意思
  • freebsd联网
  • windows自带截图软件
  • linux网络协议栈内核分析
  • instmsiw.exe进程简介
  • centos哪个版本最好用2022
  • Win7系统启动密码
  • 桌面上有desktop.ini文件
  • win7系统虚拟机
  • win8怎么改系统
  • win10系统中打开任务管理器的快捷键
  • win10系统自带杀毒软件
  • [置顶]bilinovel
  • c#中抽象类的定义
  • js canvas绘制图片
  • 简单介绍一下自己
  • js获取表单元素
  • js 拍照
  • js测试工具
  • 电子税务局登录方式
  • 最新印花税税目内容
  • 进口小麦关税税率是多少
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设