MultipleHiddenInput не кодирует должным образом через POST? - PullRequest
2 голосов
/ 23 апреля 2010

Форма выглядит очень просто:

class MyForm(forms.Form):
    ids = forms.MultipleChoiceField(widget=forms.MultipleHiddenInput())


def view(request):
  ...
  form = MyForm(initial={'ids': [o.id for o in queryset]})

Что дает мне HTML (который выглядит достаточно хорошо):

<form method="post" action="/foo/bar/">
<input type="hidden" name="ids" value="7720889" id="id_ids_0">
<input type="hidden" name="ids" value="7717962" id="id_ids_1">
<input type="hidden" name="ids" value="7717807" id="id_ids_2">
<input type="hidden" name="ids" value="7713584" id="id_ids_3">
<input type="hidden" name="ids" value="7712277" id="id_ids_4">
<input type="hidden" name="ids" value="7707475" id="id_ids_5">
<input type="hidden" name="ids" value="7707257" id="id_ids_6">
<input type="hidden" name="ids" value="7705271" id="id_ids_7">
<input type="hidden" name="ids" value="7704338" id="id_ids_8">
<input type="hidden" name="ids" value="7704137" id="id_ids_9">
<input type="hidden" name="ids" value="7695444" id="id_ids_10">
<input type="hidden" name="ids" value="7695242" id="id_ids_11">
<input type="hidden" name="ids" value="7690683" id="id_ids_12">
<input type="hidden" name="ids" value="7690431" id="id_ids_13">
<input type="hidden" name="ids" value="7689035" id="id_ids_14">
<input type="hidden" name="ids" value="7681230" id="id_ids_15">
<input type="hidden" name="ids" value="7679189" id="id_ids_16">
<input type="hidden" name="ids" value="7675315" id="id_ids_17">
<input type="hidden" name="ids" value="7667291" id="id_ids_18">
<input type="hidden" name="ids" value="7661162" id="id_ids_19">
<button type="submit">Test</button>
</form>

Но во входящем POST я получаю только одно значение:

<QueryDict: {u'ids': [u'7661162']}>

Что дает? Что я делаю не так?

1 Ответ

4 голосов
/ 11 мая 2010

Полагаю, вы хотите request.POST.getlist('ids'), который должен возвращать список всех значений, установленных для идентификаторов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...