Wpis z mikrobloga

Tworzę apkę w Django. Mam model:

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?

#django
  • 5
@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


Poczytałem ale jeśli zrobię
@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 nie