Виджет Django не требуется для формы, несмотря на настройки - PullRequest
1 голос
/ 03 мая 2019

У меня есть виджет формы (для поля 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

Есть идеи, почему поле не требуется?

...