django - La migración de ManyToManyField a null true, blank true, no se reconoce
django-models database-schema (1)
Ese comportamiento es correcto: null
no significa nada en el nivel de la base de datos cuando se utiliza con ManyToManyField
. La declaración de un ManyToManyField
hace que la creación de una tabla intermedia mantenga la relación, y aunque Django creará un atributo standard
en su instancia de modelo para su conveniencia, no hay una columna real que lo represente que pueda ser anulado. Por definición, siempre puede haber cero instancias de la relación.
blank=False
, sin embargo, tiene un efecto en la aplicación de administración, obligando al usuario a elegir al menos una relación.
(Tenga en cuenta que el sistema de migración integrado de Django crea migraciones para casi cualquier cambio a un modelo, independientemente de si afecta a la base de datos o no. Por lo tanto, este cambio podría conducir a una migración, pero no afectaría a la base de datos o si no podrías tener cero instancias de la relación.)
He hecho un cambio de modelo de
standard = models.ManyToManyField(Standard)
a
standard = models.ManyToManyField(Standard, blank=True, null=True)
Schemamigration sur para esta aplicación no reconoce el cambio?
Similar a esta pregunta, que no tiene respuesta: migraciones del sur y cambios a campos de muchos a muchos