2010-12-05 2 views
39

Je souhaite obtenir les valeurs d'une case à cocher de sélection multiple en utilisant request.POST['xzy'] comme liste. Voici mon code de modèle et de modèle.Comment puis-je obtenir plusieurs valeurs à partir de cases à cocher dans Django?

Mon modèle

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

Mon modèle

{% 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 %} 

Mon Voir le code

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

Ici, je veux « recom mendations 'est une liste contenant tous les ids d'amis, mais ici elle est simplement écrasée et ne contient que la valeur qui a été assignée dans la dernière itération de boucle. Comment puis-je résoudre ce problème. Besoin d'aide désespérément. Je vous remercie.

Répondre

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

homme Merci vous venez m'a sauvé de devenir fou @! – JREAM

+0

@KiranRuthR vous n'utilisez pas getlist dans le template, vous utilisez dans views.py. –

+0

sauvé ma journée! : 3 –

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