У меня есть виджет формы (для поля bio
), который не требуется для формы (без проверки, без атрибута HTML, установленного на required
), несмотря на то, что я задал его явно в конструкторе формы (как предложено в этом вопросе ).Когда я говорю, что это не обязательно, я имею в виду, что я могу отправить форму с пустым полем (что мне запрещено делать для других полей):
users/forms.py
:
from wagtail.admin.rich_text import get_rich_text_editor_widget
class UpdateProfileForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(UpdateProfileForm, self).__init__(*args, **kwargs)
self.fields['bio'].required = True
class Meta():
model = _user_profiles.__model__
fields = (
'email', 'first_name', 'last_name', 'organisation',
'bio', 'city', 'country', 'photo_file'
)
widgets = {
'bio': get_rich_text_editor_widget('submission')
}
Если я установлю точку останова в users/views.py
, я увижу, что на всем пути до конца стека поле формы правильно установлено на 'required'=True
, так же, как поле email
, которое требуется для правильной формы, и в отличие от city
который ему не требуется:
users/views.py
:
> /root/.pyenv/versions/3.7.2/lib/python3.7/site-packages/django/views/generic/base.py(151)get()
150 context = self.get_context_data(**kwargs)
--> 151 return self.render_to_response(context)
152
ipdb> context['form'].fields['bio'].required
True
ipdb> context['form'].fields['email'].required
True
ipdb> context['form'].fields['city'].required
False
Есть идеи, почему поле не требуется?