3

非表示と複数選択の2つのフィールドを持つ小さなフォームがあります。フォームを送信すると、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/')
4

1 に答える 1

3

ビューで、request.GET.getlist()またはrequest.POST.getlist()を使用して、同じ名前の複数の入力から値のリストを取得します。

于 2013-02-27T23:15:03.640 に答える