web-dev-qa-db-fra.com

Comment puis-je obtenir plusieurs valeurs à partir des cases à cocher dans Django

Je souhaite obtenir les valeurs d'une case à cocher à sélection multiple à l'aide de request.POST['xzy'] sous forme de liste. Voici mon modèle et code de modèle.

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 code d'affichage

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

Ici, je veux que les "recommandations" soient une liste contenant tous les identifiants d'amis, mais ici, elles sont simplement écrasées et ne contiennent que la valeur qui a été affectée dans la dernière itération de boucle. Comment puis-je résoudre ce problème. Besoin d'aide désespérément. Merci.

45
NazimZeeshan
request.POST.getlist('recommendations')
108
if not request.POST.has_key(strName):
      return ""    
  if request.POST[strName]:
      return ','.join(request.POST.getlist(strName))          
  else:
      return ""
2
Dan