Миграция ManyToManyField в null true, пустое true, не распознается

Я сделал изменение модели из

standard = models.ManyToManyField(Standard)

to

standard = models.ManyToManyField(Standard, blank=True, null=True)

Южная schemamigration для этого приложения не распознает изменения?

похоже на этот вопрос, который остается без ответа: Южные миграции и изменения на многие-к-май поля

1 ответов


это поведение правильно:null ничего не значит на уровне базы данных при использовании ManyToManyField. Призыв а ManyToManyField вызывает создание промежуточной таблицы для хранения отношения, и хотя Django создаст standard атрибут на вашем экземпляре модели для вашего удобства нет фактического столбца, представляющего его, который может быть обнулен. По определению, всегда может быть ноль экземпляров отношения.

blank=False, хотя имеет влияние на приложение администратора, заставляя пользователя выбрать хотя бы одно отношение.

(обратите внимание, что встроенная система миграции Django создает миграции практически для любого изменения модели, независимо от того, влияет ли она на базу данных или нет. Таким образом, это изменение приведет к миграции, но не повлияет на базу данных или на то, будут ли у вас нулевые экземпляры отношений.)