class Book(models.Model): title = models.CharField(max_length=200) gdy robię migrację wyskakuje błąd:
"You are trying to add a non-nullable field 'newfield' to userprofile without a default"
Mogę dodać parametr default=''" ale chcę aby w momencie gdy ktoś w formularzu nie wypełni pola title wyskakiwał błąd, że to pole musi mieć jakąś wartość. Poszukałem na gicie kodów i widzę, że dodanie default nie jest konieczne. Co w takim razie powinienem zrobić aby migracja się udała?
@Lunatik: sorry. Źle skopiowałem error ze stacka. On dotyczy pola title, dokładnie tak jak wspomniałem. Dla próby usunąłem plik migracji i powtórzyłem komendę. Zadziałało i teraz nie wiem czy olać problem czy kodować dalej... Ogólnie ten kod piszę bardziej dla zabawy więc jeśli teraz miałbym dłubać kilka godzin to niestety nie wyrobię się czasowo.
A co do posta to poczytaj o parametrach blank null default, w docsach
@Patrick_Rowerovsky: Chodzi o to, że masz lub możesz mieć w bazie już dane, a pole jest nie-nullowalne, czyli nałożenie tej migracji mogło by doprowadzić do uszkodzenia danych, tudzież doprowadzenia do sytuacji gdzie baza jest w stanie nieprawidłowym. (istniejące rekordy muszą mieć tam jakąś wartość)
Prawdopodobnie powinieneś zdefiniować w migracji domyślną wartość dla istniejących rekordów. Jeśli Cię o to nie pyta to z jakichś względów nie ma tu takiej możliwości. Jeśli
class Book(models.Model):title = models.CharField(max_length=200)
gdy robię migrację wyskakuje błąd:
"You are trying to add a non-nullable field 'newfield' to userprofile without a default"
Mogę dodać parametr
default=''"ale chcę aby w momencie gdy ktoś w formularzu nie wypełni pola title wyskakiwał błąd, że to pole musi mieć jakąś wartość. Poszukałem na gicie kodów i widzę, że dodaniedefaultnie jest konieczne. Co w takim razie powinienem zrobić aby migracja się udała?#django
Poczytałem ale jeśli
https://stackoverflow.com/a/47590145
Może nie bezpośrednio tłumaczy Twój problem, ale pokazuję do czego służą dokładnie pola
nullorazblankPrawdopodobnie powinieneś zdefiniować w migracji domyślną wartość dla istniejących rekordów. Jeśli Cię o to nie pyta to z jakichś względów nie ma tu takiej możliwości. Jeśli