表单提交未接收多个HTML选择项
我有一个小表单,里面有两个字段,一个是隐藏字段,另一个是可以多选的下拉框。当我提交这个表单时,我在django的views.py文件里能收到隐藏字段的值,但多选下拉框的值却没有出现,就好像它根本不存在一样。这是什么问题呢?
这是表单的代码:
<form method="post" action="/admin/admin/grupos/configuracao/broadcast/post/" style="margin:0;" id="form_grupo">
<table cellspacing="0" width="100%" style="margin-top: 0px; margin-bottom: 10px; border:2px solid #ccc;">
<tbody>
<tr><td width="50%"><input onclick="remove_grupo()" type="button" value="Remover do Grupo" style="float:left; margin-top:205px;"></td><td>
<select id="select-to" name="unidades" style="width:360px;height:500px;" multiple="multiple">
{% ifnotequal numero_unidades 0 %}
{% for unidade in unidades %}
<option value="{{ unidade.relacao.id }}">
{{ unidade.desc }}
</option>
{% endfor %}
{% endifnotequal %}
</select>
<input type="hidden" name="grupo_id" id="grupo_id" value="{{ grupo.id }}">
</tbody>
</table>
</form>
我的视图:
def Salvar_Configuracao_Grupo_UR( request ):
if request.user.is_authenticated() and request.user.is_superuser:
Grupo_EPR.objects.filter( grupo = request.POST['grupo_id'] ).delete()
grupo = Grupo.objects.filter( id = request.POST['grupo_id'] )[0]
unidades = request.POST.getlist('unidades')
for unidade in unidades:
grupo_epr = Grupo_EPR()
grupo_epr.relacao = unidade
grupo_epr.grupo = grupo
grupo_epr.save()
return HttpResponseRedirect('/admin/admin/grupos/configuracao/broadcast/0')
else:
return HttpResponseRedirect('/admin/')
1 个回答
3
在你的视图中,可以使用 request.GET.getlist()
或 request.POST.getlist()
来获取多个同名输入框的值,这样你就能得到一个值的列表。