Joh*_*nna 1 django jquery django-forms choicefield
我有一个由2个ChoiceField和一个CharField组成的表单.当选择第一个项目时,第二个ChoiceField通过ajax填充.
填充它的模板如下:
{% for a in assets %}
<option value="{{ a.asset_id }}">{{ a.asset_name }}_{{ a.asset_description }}</option>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
当我尝试提交表单时,我收到以下错误:
Select a valid choice. 20 is not one of the available choices.
Run Code Online (Sandbox Code Playgroud)
指向第二个ChoiceField,20对应于所选项目的{{a.asset_id}}.
我在其他论坛上看到了这个错误,但它几乎总是由于multipleChoiceField,这不是我关注的问题.
我究竟做错了什么 ?
ChoiceField需要choices
设置.这些不只是确定下拉列表中显示的内容,但重要的是,它还确定在提交表单时应接受的值.
让我解释你的情况发生了什么.您最初的选择设置为:
CHOICES = (
('', '-- choisir un type en premier')
)
Run Code Online (Sandbox Code Playgroud)
这意味着唯一可以接受的是空白选择(元组中的第一个条目''
,是字段的实际值,并且choisir...
是文本值).
因此,当您<option>
通过Javascript 添加元素时,它们的值将不会出现CHOICES
,因此当您提交该表单时,它们会被Django拒绝.10不在CHOICES
.
表单提交的视图应该查看提交给它的选项的值,然后相应地更改CHOICES
传递给ChoiceField 的值.
归档时间: |
|
查看次数: |
3567 次 |
最近记录: |