npr*_*etw 20 django django-models database-schema django-south django-migrations
我做了一个模型改变
standard = models.ManyToManyField(Standard)
Run Code Online (Sandbox Code Playgroud)
至
standard = models.ManyToManyField(Standard, blank=True, null=True)
Run Code Online (Sandbox Code Playgroud)
此应用程序的南模式迁移无法识别更改?
类似于这个问题,这个问题没有得到解决: 南方迁移和许多可能领域的变化
Kev*_*nry 38
这种行为是正确的:null与a一起使用时,在数据库级别上没有任何意义ManyToManyField.a的声明ManyToManyField会导致创建一个中间表来保存关系,虽然Django会standard为了您的方便在模型实例上创建一个属性,但是没有实际的列表示它可以被置为空.根据定义,关系的实例总是零.
blank=False但是,确实会对管理员应用产生影响,迫使用户选择至少一种关系.
(请注意,Django的内置迁移系统几乎可以为模型的任何更改创建迁移,无论它是否影响数据库.因此,此更改可能会导致迁移,但不会影响数据库或是否或不是你可以没有关系的实例.)