Migrating ManyToManyField to null true, blank true, isn't recognized
我把模型从
1
| standard = models.ManyToManyField(Standard) |
到
1
| standard = models.ManyToManyField(Standard, blank=True, null=True) |
号
此应用程序的南部架构迁移无法识别更改?
与此类似,这是一个未解决的问题:南部迁移和许多到五月的油田的变化
- 当你试图运行./manage.py schemamigration yourapp --auto时,南方人到底说了什么?
- 找不到更改
- 我能想到的唯一一件事是你没有拯救models.py,但我非常怀疑。对不起,我帮不上忙。
- 只是一个想法:南方应该做些什么吗?manytomanyfield将创建一个中间表,因此它要么在该表中有记录,要么不在该表中。我的意思是两个FK列在中间表上仍然是强制的。对不起,如果我弄错了!
这种行为是正确的:当与ManyToManyField一起使用时,null并不意味着数据库级别的任何内容。ManyToManyField的声明导致创建一个中间表来保持关系,尽管django为了方便起见将在您的模型实例上创建一个standard属性,但是没有实际的列来表示可以为空的。根据定义,关系的实例始终可以为零。
不过,blank=False确实对管理应用程序有影响,迫使用户至少选择一种关系。
(请注意,Django的内置迁移系统只为模型的任何更改创建迁移,不管它是否影响数据库。因此,此更改可能导致迁移,但不会影响数据库,也不会影响您是否可以拥有零个关系实例。)