2016-09-29 5 views
0

Ich habe eine Python-Liste (list_exp) in meiner HTML-Vorlage übergeben und jetzt möchte ich das Ergebnis meiner mehrere Kontrollkästchen in view.py mit einem Wörterbuch erhalten. {list_exp [0]: Richtig/Falsch, list_exp [1]: Richtig/Falsch .....}Get checkbox Wert in django

<form action="" method="post"> 
{% for name in list_exp%} 
<input type="checkbox" name="{{name}}"><label> Experiment : {{name}}</label> 
<br> 
{% endfor %} 
<input type="submit" value="Submit"> 
</div> 
</form> 
+1

Während oder nach der Formularvalidierung erwartet? – GAEfan

+0

Normalerweise, nachdem Sie das Formular gesendet haben, würde Ihr Backend in diesem Fall nach den Args der Anfragen suchen, was auch immer in {{name}} ist. Allerdings benutze ich oft einen jquery-Post, um das Auftreten von Fehlern zu verhindern. Was dann bedeutet, dass ich so etwas auf der Vorlage machen kann. var Wert = $ ('# checkbox'). Is (': checked'); $ .post (/ endpoint, {"{{name}}": Wert}, Funktion (Daten) {}); – reticentroot

Antwort

0

Von dem, was ich weiß, wenn Sie jede Eingabe Checkbox den gleichen Namen geben, können Sie verweisen um sie als eine Liste in Ihrer views.py.

So in der Vorlage:

{% for name in list_exp %} 
    <input type="checkbox" name="list_exp"><label> Experiment : {{name}}</label> 
    <br> 
{% endfor %} 

Und dann in der views.py:

request.POST.getlist('list_exp') 

eine Liste zurück, wie