Django MultipleChoiceField提交POST数据触发验证错误的问题求助
Django MultipleChoiceField提交POST数据触发验证错误的问题求助
我的Django表单里有一个MultipleChoiceField字段,选项是元组列表:
choice = forms.MultipleChoiceField( choices = [("1", "Option 1"), ("2", "Option 2"), ("3", "Option 3")], label="Choose an option", widget=forms.Select(), required=True, )
页面加载后生成的DOM元素如下:
<select name="choice" id="id_choice"> <option value="1">Option 1</option> <option value="2">Option 2</option> <option value="3">Option 3</option> </select>
但提交表单发送POST请求时,后端接收到的不是("1", "Option 1")这样的元组值,而只是"1"。这直接触发了MultipleChoiceField的ValidationError,因为该字段的to_python方法要求POST传入的值必须是列表或元组:
def to_python(self, value): if not value: return [] elif not isinstance(value, (list, tuple)): raise ValidationError( self.error_messages["invalid_list"], code="invalid_list" ) return [str(val) for val in value]
我想问问有没有办法设置DOM元素的POST值,让它能发送对应的元组?之前我试过在views.py里用field.data修改数据,但得到了This QueryDict instance is immutable(这个QueryDict实例是不可变的)的错误提示。
提前谢谢各位的帮忙!
备注:内容来源于stack exchange,提问作者Tom Lee
相关产品推荐
相关产品推荐

