位置: 编程技术 - 正文

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

  • 年度所得税汇算清缴操作流程
  • 国际反避税措施
  • 房地产按揭是什么意思
  • 劳动收入与报酬的具体形式有哪些
  • 劳务派遣的开票规范
  • 企业为什么会有两个中征码
  • 企业入统的利弊
  • 二季度资产总额怎么计算
  • 发票开的是推广服务费计入什么费用?
  • 建设工程服务招标管理办法
  • 出口退税进项税额可以抵扣吗
  • 物业公司收到开发代付物业管理费怎么做账
  • 购买沙子违法吗
  • 非营利组织对外捐赠
  • 公司社保公积金最晚缴费时间段
  • 公司一直零报税,有问题吗
  • 税友的票可以抵扣吗?
  • 采购国产设备增值税
  • 关税减免有哪些类型?
  • 一般企业的会计原始凭证有哪些类型
  • 应收账款分录借方负数转到预收账款的哪方
  • 有留抵怎么交增值税
  • 办公室装修费用计入什么会计科目
  • 营改增建筑业税率变化时间
  • scanregistry.exe - scanregistry是什么进程 有什么用
  • 在win7中如何找到WAN服务
  • SUSE Linux Enterprise Server 11 SP3安装教程详解
  • 在win10系统中复制的文件不能粘贴怎么办?
  • 本年利润和利润总额的关系
  • 所得税季报填报说明
  • 关于农产品的法律
  • 股票公允价值变动怎么算
  • thinkphp5数据库操作
  • PHP:mcrypt_module_get_algo_block_size()的用法_Mcrypt函数
  • 布里奇和瓦内莎
  • 资产负债表中投资总额是什么
  • thinkphp6调用模型的方法
  • 成品油批发和零售许可
  • 基于深度学习的车型识别系统(Python+清新界面+数据集)
  • php生成唯一id
  • python字符串多行
  • css中权重值是什么意思
  • 递延所得税资产借贷方向
  • 印花税对什么征税
  • 织梦内容页模板修改
  • sqlserver2008还原数据库 错误3624
  • 实例理解SQL中truncate和delete的区别
  • 小规模纳税人税控盘怎么抵税
  • 2021新旧会计准则
  • 信用减值损失6702
  • 购买本公司产品未付款需要签名字吗
  • 如何建立明细分类账
  • 建账前应考虑什么问题
  • sqlserver数据库优化的几种方式
  • jquery常用的事件绑定函数有哪些
  • mysql 修改配置
  • 断电恢复
  • win10预览版好用吗
  • win7家庭版开启administrator
  • linux ll不能用
  • win7打开
  • linux禁止root用户远程登录
  • rteng7.exe - rteng7是什么进程 有什么用
  • 系统升级后c盘空间小了
  • linux那些事儿
  • cocos 2d x
  • Cocos2d-x3.3 Physics物理引擎模块解决了刚体穿透问题
  • nodejs实战教程
  • js响应式布局
  • 网络传输协议是事实上的国际标准
  • android零基础
  • Protocol Buffers(Protobuf)开发者指南---概览
  • jquery propertychange
  • 中国税务徽标
  • 亏损企业能否给补偿
  • 怎么查票据真伪
  • 运费没有发票怎么报销
  • 慰问金能直接转账吗
  • 深圳国税系统
  • 公司地税申报
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设