To zachowanie jest poprawne: null
nie robi nic na poziomie bazy danych na myśli, gdy używana z ManyToManyField
. Wywołanie ManyToManyField
powoduje utworzenie tabeli pośredniej, która ma utrzymywać relację, i chociaż Django utworzy atrybut atrybutu standard
na swoim egzemplarzu modelu dla wygody użytkownika, nie ma faktycznej kolumny reprezentującej go, która mogłaby być pusta. Z definicji zawsze może być zero instancji relacji.
blank=False
, ma jednak wpływ na aplikację administratora, zmuszając użytkownika do wyboru co najmniej jednej relacji.
(Należy zauważyć, że wbudowany system migracji Django tworzy migracje dla prawie każdej zmiany w modelu, niezależnie od tego, czy wpływa na bazę danych, czy też nie, więc ta zmiana spowodowałaby migrację, ale nie wpłynęłaby na baza danych lub to, czy możesz mieć zero instancji relacji.)
Co dokładnie mówi South, gdy próbujesz uruchomić './manage.py schemamigration yourapp --auto'? –
Nie znaleziono żadnych zmian – npradeetw
Jedyne, co mogę wymyślić, to to, że nie ratujesz 'models.py', ale bardzo w to wątpię. Przepraszam, nie mogę pomóc. –