Django执行makemigrations出现修复方案选择提示该如何解决
Django makemigrations 弹窗选择问题解决
触发原因
你对模型字段做了涉及非空约束的修改(你当前粘贴的修改前后代码一致,属于复制遗漏,实际操作为新增非空字段、或是将原有字段的null=True改为null=False),此时数据库中已经存在该表的历史数据,Django无法判定历史数据的该字段该填充什么值,因此弹出修复选项。
解决方案
根据你的实际需求选择对应处理方式即可:
- 选选项1:仅需要给现有历史数据统一填充一个一次性值,后续不会使用该值作为默认。选中后直接输入对应类型的合法值即可,比如CharField字段可以输入
''空字符串,输入完成按回车即可正常生成迁移文件。该默认值仅对已有的历史数据生效,不会写入模型代码 - 选选项2:需要给该字段设置全局通用的默认值。选中后退出生成流程,回到
models.py给对应字段添加default参数即可,示例如下:
配置完成后重新执行details = models.CharField(max_length=500, default='默认详情')python manage.py makemigrations即可正常生成迁移文件,不会再弹出该提示。
内容的提问来源于stack exchange,提问作者pedro echavarria
相关产品推荐
相关产品推荐

