2010-03-10 8 views
40

Hallo Ich habe eine Reihe von Kontrollkästchen, z.Wie bekomme ich die Werte aller ausgewählten Checkboxen in einer Django-Anfrage.POST?

<input type="checkbox" name="checks[]" value="1" /> 
<input type="checkbox" name="checks[]" value="2" /> 
<input type="checkbox" name="checks[]" value="3" /> 
<input type="checkbox" name="checks[]" value="4" /> 

Wie kann ich auf diese in der view.py zugreifen, wenn mehr als eins ausgewählt ist?

Ich habe

versucht
request.POST['checks'] 

aber das gibt mir nur den letzten Wert. Was ich will, sind alle diejenigen, die in einer Liste ausgewählt wurden, z.

1,3,4

Dank

Antwort

48

Versuchen Sie folgendes:

some_var = request.POST.getlist('checks') 

some_var[1,3,4] (diese Werte, die überprüft wurden) enthalten

+1

dies sollte 'request.POST.getlist ('checks')' – Claudiu

17

Dies wird Ihr Problem beheben,

some_var = request.POST.getlist('checks[]') 

Wenn Sie some_var = request.POST.getlist('checks') schreiben, funktioniert möglicherweise nicht richtig.

+0

Dies ist die Art, wie Sie es für Django 1.8+ tun müssen (Ich bin nicht sicher, auf den früheren Versionen oder welche Version das OP bei der Zeit). – tokyovariable

+0

Meintest du 'getlist ('checks', [])'? Wenn dies der Fall ist, sind die Klammern in [Version 1.10] (https://docs.djangoproject.com/en/1.10/ref/request-response/#django.http.QueryDict.getlist) nicht erforderlich. 'getlist' gibt standardmäßig eine leere Liste für fehlende Schlüssel zurück. –

Verwandte Themen