Ответ 1
Это правильное поведение: null
ничего не значит на уровне базы данных при использовании с ManyToManyField
. Объявление ManyToManyField
приводит к созданию промежуточной таблицы для хранения отношения, и, хотя Django создаст standard
атрибут для экземпляра вашей модели для вашего удобства, нет фактического столбца, представляющего его, который мог бы быть обнулен. По определению всегда может быть ноль экземпляров отношения.
blank=False
, однако, влияет на приложение администратора, заставляя пользователя выбирать хотя бы одно отношение.
(Обратите внимание, что встроенная система миграции Django создает миграции практически для любого изменения модели, независимо от того, влияет ли оно на базу данных или нет. Таким образом, это изменение может привести к миграции, но это не повлияет на базу данных, или не могли бы вы иметь ноль экземпляров отношений.)