我不确定我是否正确设计了我的forms.py文件,当涉及到TypedChoiceField并且不允许用户输入选定的值“0”时。
我已阅读django docs,但未找到任何相关信息。有一些关于empty_value的内容,但我找不到关于TypedChoiceField的任何示例。
我在选择列表中有一个国家/地区名称列表:
<select data-parsley-required="true" name="address_country_style_type" data-parsley-required-message="This field is required." id="id_address_country_style_type" data-parsley-id="1440" class="input-xxlarge" data-original-title="" title="">
<option value="0"> Select a country or territory</option>
<option value="1">Afghanistan</option>
<option value="2">Aland Islands</option>
<option value="3">Albania</option>
......
</select>
在我的forms.py文件中,我有以下内容(包括已清理的数据代码):
@parsleyfy
class AddressDetailsForm(forms.Form):
required_css_class = 'required'
address_country_style_type = forms.TypedChoiceField(
coerce=int,
label=_('Address Format'),
choices=[(x, x) for x in range(0, 256)],
required=True)
....
def clean(self):
cd_addf = super(AddressDetailsForm, self).clean()
if 'address_country_style_type' in cd_addf and cd_addf['address_country_style_type'] == 0:
self._errors['address_country_style_type'] = self.error_class([_("You must select an Address Format.")])
del self.cleaned_data['address_country_style_type']
else:
....
我添加了django-parsley来设置客户端验证。
在“address_country_style_type = forms.TypedChoiceField”声明中的forms.py文件中是否有一种方法可以声明address_country_style_type不能接受选项值0,以便通过以下方式自动获取此验证: django-parsley和我可以剔除清理过的数据if if?
答案 0 :(得分:3)
我没有和django合作过,所以我只能用parsleyjs来帮助你。
如果您设法移除value="0"
并将其放置为value=""
,Parsleyjs会告诉您该字段是必需的:
<option value=""> Select a country or territory</option>