До сих пор я не нашел четкого объяснения пустого, нулевого и обязательного - в моделях и формах Django.
Я знаю, что по умолчанию для каждого из них следующее:
blank = False
null = False
required = True
Я также знаю, что:
blank=True (используется в models.py), означает на уровне формы принимать пустые формы - связанное поле не требуется в форме.
null=True (используется в models.py), означает, что на уровне базы данных значения Python None могут быть сохранены в модели и сохранены (а затем завершены как значения SQL NULL в базе данных).
required=False (используется в forms.py), означает, что связанное поле формы не является обязательным.
Надеемся, что приведенная выше информация будет полезна другим (пожалуйста, дайте мне знать, если есть какие-либо недостатки в логике, и я обновлю ее).
Мой вопрос заключается в следующем:
Когда я знаю, когда использовать blank=True против required=False. Если моя цель состоит в том, чтобы сделать поле формы необязательным, я мог бы определить это в модели, используя blank=True, или я мог бы определить это в форме, используя required=False. Означает ли это, что вы можете определить blank=True в модели, а в связанной ModelForm переопределить это с помощью required=True?
Также связано, что, когда вы используете обычную форму (forms.Form)? Поскольку форма не связана с моделью (кроме как с помощью логики представления), что произойдет, если они снова будут противоречить друг другу?