位置: 编程技术 - 正文

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最新版本22h2激活
  • 购买货物现金付讫的会计分录
  • win7安装包下载
  • 简述php操作mysql数据库的基本步骤
  • PHP curl 或 file_get_contents 获取需要授权页面的方法
  • 未分配利润转增股本要交税吗怎么交
  • jsp使用教程
  • 出口退税税率差
  • 新公司建账会计科目
  • 前端面试题汇总.pdf
  • php fgetc
  • 企业基金分红具备的条件
  • 长期股权投资资本公积增加记哪个会计科目
  • sql server简单查询
  • 对公贷款利息如何入账
  • 所得税减免的会计科目
  • 商场联营方案
  • 去年少计提费用
  • 营改增试点行业顺序
  • 估价入帐能跨年吗
  • 餐饮业固定资产怎么摊销
  • 车辆报废如何进行
  • 付款凭证怎么写样本
  • 年底需要结转的会计科目
  • 新税法和新准则的关系
  • 史上最简单的皮筋枪
  • mysql5.7.31安装
  • windows主进程rundll32总是用麦克风
  • reg.exe是什么程序
  • win10 Realtek HD Audio更新失败怎么办 win10关闭UAC解决Realtek HD Audio更新失败
  • 苹果电脑dock栏是什么意思
  • win xp 系统
  • linux系统中
  • mac自带计算器
  • linux常用命令grep
  • nodejs读取json文件,并返回列表
  • bat批处理脚本教程
  • perl脚本教程视频
  • python中的字符型
  • linux中使用最多的命令
  • JS+CSS实现仿雅虎另类滑动门切换效果
  • python写汉字代码
  • javascript视频教程推荐
  • 互联网巨头bat有哪些
  • Python随机生成数字求最小的三个数字
  • jquery.validate使用详解
  • 漯河经济开发区税务局电话
  • 通用机打发票明细怎么导出电子版
  • 重庆职高学校推荐
  • 天津摇号申请查询
  • 深圳布吉下水径旧改
  • 福建高速公路电子发票怎么开
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设