Do tej pory nie znalazłem jasnego wyjaśnienia pustego, zerowego i wymaganego - w modelach i formularzach Django.Puste, puste i wymagane w modelach Django i ModelForms
wiem domyślny dla każdego jest następujący:
blank = False
null = False
required = True
wiem też, że:
blank=True
(stosowany w models.py), to znaczy na formularzu poziom, akceptuj puste formularze - powiązane pole nie jest wymagane w formularzu.
(używany w models.py), oznacza, że na poziomie bazy danych puste ciągi będą przechowywane jako NULL
w przeciwieństwie do pustej wersji skojarzonego typu danych.
required=False
(używane w forms.py), oznacza, że powiązane pole formularza nie jest wymagane.
Mam nadzieję, że powyższe informacje będą służyć innym dobrze (proszę dać mi znać, jeśli są jakieś błędy w logice, i będę ją aktualizować).
Moje pytanie jest następujące:
Kiedy mam wiedzieć kiedy użyć blank=True
Vs. required=False
. Jeśli moim celem jest uczynienie pola formularza niewymaganym, mogę zdefiniować to w modelu przy użyciu blank=True
, lub mogę zdefiniować to w formularzu przy użyciu required=False
. Czy to oznacza, że można zdefiniować blank=True
w modelu, a w powiązanym ModelForm
zastąpić to z required=True
?
Też się odnoszą, jeśli chodzi o używanie regularnego formularza (forms.Form
)? Ponieważ forma nie jest powiązana z modelem (inaczej niż poprzez logikę widoku), co się stanie, jeśli znowu się zaprzeczą?
Kiedy * co * jest sprzeczne z czym, jeśli formularz nie jest powiązany z modelem. –