迁移ManyToManyField到null true, blank true时,无法识别。

19 浏览
0 Comments

迁移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日
0
0 Comments

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

blank=False 对验证(例如使用模型表单像管理应用程序那样)产生影响,强制用户至少选择一个关系。

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

0