我有一个表单小部件(用于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
有什么想法为什么不需要该字段吗?