专栏首页恩蓝脚本Django models文件模型变更错误解决

Django models文件模型变更错误解决

表结构的修改

1、表结构修改后,原来表中已存在的数据,就会出现结构混乱,makemigrations更新表的时候就会出错

比如第一次建模型,漏了一个字段,后来补上了。(经常遇到模型字段修改)

重新makemigrations,然后报错

数据库规则:除了新建表,如果你再次增加字段,数据库会有一些自动检测的东西(比如有没有默认值,是否允许为空)

如果表中已经有数据,这个字段还是非空的,且没有设定默认值,后台检测不通过就会报错。

解决方法(有两种):

1、新增加的字段,设置允许为空。生成表的时候,之前数据新增加的字段就会为空。(null=True允许数据库中为空,blank=True允许admin后台中为空)

2、新增加的字段,设置一个默认值。生成表的时候,之前的数据新增加字段就会应用这个默认值(default=None,默认值为空)

删除0001_initial.py,再次makemigrations

接着再往数据库推送,python3 manage.py migrate

原来是自己在数据库手动添加过,不是通过django方式的。

于是手贱想删除表,删了再次执行,发现没有变化

删表有风险,可能误删其他表,如果表不多,所以还是新建一个库,环境干净(强迫症啊)

最后完美解决

以上就是本文的全部内容,希望对大家的学习有所帮助。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 详解python中groupby函数通俗易懂

    df[](指输出数据的结果属性名称).groupby([df[属性],df[属性])(指分类的属性,数据的限定定语,可以有多个).mean()(对于数据的计算方...

    砸漏
  • Laravel中10个有用的用法小结

    Laravel 默认使用 deleted_at 作为软删除字段,我们通过以下方式将 deleted_at 改成 is_deleted

    砸漏
  • 教你五分钟实现Android超漂亮的刻度轮播控件实例教程

    最近一直在做音视频的工作,已经有大半年没有写应用层的东西了,生怕越来越生疏。正好前段时间接了个外包项目,才得以回顾一下。项目中有一个控件挺简洁漂亮的,而且用到的...

    砸漏
  • Python面向对象3:静态/动态字段、静态/动态方法、单例模式

    Python中的类成员,包括方法、字段、属性。 “字段”和“方法”都有“动态”和“静态”之分,即: 字段 - 静态字段:仅保存在类中 - 普通(动态)字段:保存...

    企鹅号小编
  • 802.1x------3

    用户开机后,通过802.1x客户端软件发起请求,查询网络上能处理EAPOL(EAP Over LAN)数据包的设备

    py3study
  • Access数据库表字段属性(三)

    字段大小是文本、数字和自动编号等数据类型的字段,可以指定其字段的大小。【短文本】类型最长255个字符,如果超过255个字符,数据类型使用【长文本】。

    无言之月
  • 原 荐 webSocket与ajax、web

    jojo
  • 原 荐 webSocket与ajax、web

    作者:汪娇娇 时间:2017年8月2日 先看一个有道释义: ? 其实释义的挺形象的,下面我来一一解释哈: 1、聊天室:webSocket有名的应用就是聊天室了;...

    jojo
  • SAP CRM和C4C的客户主数据修改历史记录查询

    版权声明:本文为博主汪子熙原创文章,未经博主允许不得转载。 https://jerry.bl...

    Jerry Wang
  • 【DeepMind重大突破】DNN具有人类行为,认知心理学破解黑箱

    【新智元导读】DeepMind 的最新论文称自己“首次”将认知心理学方法引入了对深度神经网络黑箱的理解研究中,并用认知心理学的方法发现了深度神经网络存有和人类儿...

    新智元

扫码关注云+社区

领取腾讯云代金券