【发布时间】:2012-03-13 07:35:40
【问题描述】:
我有这样的表格:
class MyForm(forms.Form):
site = forms.ChoiceField(choices=SITE_CHOICES, label=ugettext_lazy('Site'),)
...
params = forms.MultipleChoiceField(
choices=PARAM_CHOICES,
label=ugettext_lazy('Select Parameters'),
widget=forms.CheckboxSelectMultiple()
)
在我的模板中:
<form action="{% url results %}" method="get">{% csrf_token %}
{% for field in myform %}
<div class="field_wrapper">
{{ field.errors }}
{{ field.label_tag }} {{ field }}
</div>
{% endfor %}
<input type="submit" name="submit" value="{% trans 'Query' %}" />
</form>
我的问题是,当我以 GET 形式提交表单时,变量如下所示:
site=1¶ms=foo¶ms=bar¶ms=something&submit=Query
我的params 变量显然被最后一个选择覆盖了?如何将提交的数据作为单独的变量访问?
任何帮助表示赞赏。
【问题讨论】:
-
您是否实际测试过它,或者您只是对 URL 做出假设?对于
MultipleChoiceField,结果应该是request.GET['params']中提交值的列表。它是一个列表还是只是最后一个param? -
好的——我的错。变量实际上作为列表传递给 GET。我确实检查过,但我的方法有问题。