我已经从
standard = models.ManyToManyField(Standard)
到
standard = models.ManyToManyField(Standard, blank=True, null=True)
此应用程序的 South schemamigration 无法识别更改?
类似于这个没有答案的问题: South migrations and changes to many-to-ma fields
我已经从
standard = models.ManyToManyField(Standard)
到
standard = models.ManyToManyField(Standard, blank=True, null=True)
此应用程序的 South schemamigration 无法识别更改?
类似于这个没有答案的问题: South migrations and changes to many-to-ma fields
这种行为是正确的:null
与ManyToManyField
. a 的声明ManyToManyField
会导致创建一个中间表来保存关系,尽管 Django 会standard
为您的方便在您的模型实例上创建一个属性,但没有代表它的实际列可以为空。根据定义,关系的实例总是可以为零。
blank=False
但是,确实对验证有影响(例如,当使用像管理应用这样的模型表单时),迫使用户选择至少一个关系。
(请注意,Django 的内置迁移系统会为模型的任何更改创建迁移,无论它是否影响数据库。因此,此更改可能会导致迁移,但不会影响数据库或是否不是你可以有零个关系实例。)