2010-03-10 13 views
40

Hola Tengo una serie de casillas de verificación, p.¿Cómo obtengo los valores de todas las casillas de verificación seleccionadas en una solicitud de Django.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" /> 

¿Cómo accedo a estos en view.py si hay más de uno seleccionado?

He tratado

request.POST['checks'] 

pero que sólo me da el último valor. Lo que quiero son todos los que han sido seleccionados en una lista, p. 1,3,4

Gracias

Respuesta

48

Prueba esto:

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

some_var contendrá [1,3,4] (aquellos valores que han sido analizados)

+1

esto debe ser 'request.POST.getlist ('checks')' – Claudiu

17

Esto solucionará su problema,

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

Si escribe some_var = request.POST.getlist('checks') puede que no funcione correctamente.

+0

Esta es la manera en que necesita hacerlo para Django 1.8+ (no estoy seguro de las versiones anteriores o qué versión estaba usando el OP en el hora). – tokyovariable

+0

¿Quiso decir 'getlist ('checks', [])'? Si es así, al menos en [versión 1.10] (https://docs.djangoproject.com/en/1.10/ref/request-response/#django.http.QueryDict.getlist), los corchetes no son necesarios. 'getlist' devolverá una lista vacía por defecto, para las claves faltantes. –

Cuestiones relacionadas