如何正确验证Django表单中的multipleechoicefield

2024-07-05 14:01:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个表示US状态的multipleechoicefield,将GET请求传递到我的表单中,如?state=AL%2CAK会导致错误:

Select a valid choice. AL,AK is not one of the available choices.

但是,这些值肯定列在字段选项中,因为它们在表单字段中正确呈现。在

我尝试在我的表单中指定一个自定义clean_state()方法,以将值转换为列表,但没有效果。打印已清理的数据['state']似乎显示它甚至没有使用来自的数据进行调用请求.GET. 在

是什么导致了这个错误?在

^{pr2}$

Tags: 数据表单getis状态错误notselect
1条回答
网友
1楼 · 发布于 2024-07-05 14:01:18

multipleechoicefields不会传递列表中的所有选定值,而是为同一个键传递多个不同的值。在

换句话说,如果选择'AL'和'AK',那么查询字符串应该是?state=AL&state=AK,而不是?state=AL%2CAK。在

如果没有看到您的自定义clean_state()方法,我无法告诉您它出了什么问题,但是如果state字段因为querystring错误而无效,那么“state”就不会出现在cleaned_数据中(因为cleaned_数据只保存有效数据)。在

希望这能有所帮助。如果你仍然被困,试着增加一些细节,我可以试着更具体。在

相关问题 更多 >