迁移ManyToManyField到null true, blank true时,无法识别。
迁移ManyToManyField到null true, blank true时,无法识别。
我已对模型进行了更改,从
standard = models.ManyToManyField(Standard)
变为
standard = models.ManyToManyField(Standard, blank=True, null=True)
但是这个应用的South schemamigration无法识别这种更改?
类似于这个问题,它没有得到回答:
South migrations and changes to many-to-may fields
admin 更改状态以发布 2023年5月24日
这种行为是正确的: 在与 ManyToManyField
一起使用时, null
在数据库级别上没有任何意义。声明 ManyToManyField
会导致创建一个中间表来保存关系,尽管 Django 会为您的方便在模型实例上创建一个 standard
属性,但实际上没有表示它的列可以被清空。根据定义,关系中始终可以没有实例。
blank=False
对验证(例如使用模型表单像管理应用程序那样)产生影响,强制用户至少选择一个关系。
(请注意,Django 内置的迁移系统会为模型的任何更改创建迁移,无论它是否影响数据库。因此,这个变化可能会导致迁移,但它不影响数据库或您是否可以有零个关系实例。)