尽管已设置

时间:2019-05-03 17:16:21

标签: django forms wagtail

我有一个表单小部件(用于bio字段),尽管我在表单构造函数中进行了显式设置,但表单并不需要表单小部件(无验证,没有将HTML属性设置为required) (as suggested in this SO question)。当我说不需要时,我的意思是我可以提交字段为空的表单(该字段不能用于其他字段):

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字段一样,form字段也被正确设置为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

有什么想法为什么不需要该字段吗?

0 个答案:

没有答案