2010-12-05 12 views
39

Deseo obtener los valores de una casilla de verificación de selección múltiple usando request.POST['xzy'] como una lista. Aquí está mi modelo y código de plantilla.Cómo obtengo múltiples valores de casillas de verificación en Django

Mi Modelo

class Recommend(models.Model): 
    user=models.ForeignKey(User) 
    book=models.ForeignKey(BookModel) 
    friends=models.ManyToManyField(User, related_name="recommended") 

mi plantilla

{% for friend in friends %} 

<input type="checkbox" name="recommendations" id="option{{friend.id}}" value={{friend.username}} /> 
<label for="option{{friend.id}}"><b>{{friend.username}}</b></label><br /> 

{% endfor %} 

Mi Ver código

if request.method == 'POST': 
    recommendations=request.POST['recommendations'] 

Aquí quiero 'reco mendations 'es una lista que contiene todos los id. de amigos, pero aquí solo se sobrescribe y solo contiene el valor que se asignó en la última iteración de bucle. Como puedó resolver esté problema. Necesita ayuda desesperadamente Gracias.

Respuesta

93
request.POST.getlist('recommendations') 
+1

Gracias hombre que me salvó de volverse loco @! – JREAM

+0

@KiranRuthR no usas getlist en la plantilla, la usas en views.py. –

+0

me salvó el día! : 3 –

1
if not request.POST.has_key(strName): 
     return ""  
    if request.POST[strName]: 
     return ','.join(request.POST.getlist(strName))   
    else: 
     return "" 
Cuestiones relacionadas