Bisher habe ich keine klare Erklärung zu leeren, Null und erforderlich - in Djangos Modellen und Formen.Leer, Null und Erforderlich in Django-Modellen und ModelForms
Ich weiß, dass die Standardeinstellung für jeden ist die folgende:
blank = False
null = False
required = True
Ich weiß auch, dass:
blank=True
(verwendet in models.py), eine Einrichtung auf dem Formular Ebene, leere Formulare akzeptieren - das zugehörige Feld wird in einem Formular nicht benötigt.
null=True
(in models.py verwendet), bedeutet auf Datenbankebene, leere Strings werden als NULL
im Gegensatz zu einer leeren Version des zugeordneten Datentyps gespeichert.
required=False
(in forms.py verwendet) bedeutet, dass das zugehörige Formularfeld nicht erforderlich ist.
Hoffentlich wird die oben genannten Informationen werden andere dienen gut (bitte lassen Sie mich wissen, ob es irgendwelche Fehler in der Logik sind, und ich werde es aktualisieren).
Meine Frage ist folgende:
Wann weiß ich, wann blank=True
vs. required=False
zu verwenden. Wenn es mein Ziel ist, ein Formularfeld nicht erforderlich zu machen, könnte ich dies im Modell unter Verwendung von blank=True
definieren, oder ich könnte dies im Formular unter Verwendung von required=False
definieren. Heißt das, Sie können blank=True
in einem Modell definieren und in dem zugehörigen ModelForm
diese mit required=True
überschreiben?
Auch verwandt, was ist, wenn Sie ein reguläres Formular verwenden (forms.Form
)? Da die Form nicht mit einem Modell verknüpft ist (anders als durch die Sichtlogik), was passiert, wenn sie sich wieder gegenseitig widersprechen?
Wenn * was * widerspricht was, wenn ein Formular nicht mit einem Modell verknüpft ist. –