我有一个表示US状态的multipleechoicefield,将GET请求传递到我的表单中,如?state=AL%2CAK
会导致错误:
Select a valid choice. AL,AK is not one of the available choices.
但是,这些值肯定列在字段选项中,因为它们在表单字段中正确呈现。在
我尝试在我的表单中指定一个自定义clean_state()方法,以将值转换为列表,但没有效果。打印已清理的数据['state']似乎显示它甚至没有使用来自的数据进行调用请求.GET. 在
是什么导致了这个错误?在
^{pr2}$
multipleechoicefields不会传递列表中的所有选定值,而是为同一个键传递多个不同的值。在
换句话说,如果选择'AL'和'AK',那么查询字符串应该是
?state=AL&state=AK
,而不是?state=AL%2CAK
。在如果没有看到您的自定义
clean_state()
方法,我无法告诉您它出了什么问题,但是如果state字段因为querystring错误而无效,那么“state”就不会出现在cleaned_数据中(因为cleaned_数据只保存有效数据)。在希望这能有所帮助。如果你仍然被困,试着增加一些细节,我可以试着更具体。在
相关问题 更多 >
编程相关推荐