将 ManyToManyField 迁移到空 true、空白 true 无法识别



我对进行了型号更改

standard = models.ManyToManyField(Standard)

standard = models.ManyToManyField(Standard, blank=True, null=True)

此应用程序的南方架构迁移无法识别更改?

类似于这个没有答案的问题:南部迁移和对许多到五月的字段的更改

这种行为是正确的:与ManyToManyField一起使用时,null在数据库级别没有任何意义。ManyToManyField的声明导致创建一个中间表来保存关系,尽管Django为了方便起见会在模型实例上创建一个standard属性,但没有表示它的实际列可以为null。根据定义,这种关系总是可以为零。

然而,blank=False确实对验证有影响(例如,当使用管理应用程序等模型表单时),迫使用户至少选择一个关系。

(请注意,Django内置的迁移系统会为模型的任何更改创建迁移,无论它是否影响数据库。因此,此更改可能会导致迁移,但不会影响数据库,也不会影响关系的零实例。)

最新更新