2010-03-10 4 views
40

Salut J'ai un tableau de cases à cocher, par exemple.Comment obtenir les valeurs de toutes les cases cochées dans une requête 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" /> 

Comment puis-je accéder à ceux-ci dans view.py si plusieurs sont sélectionnés?

J'ai essayé

request.POST['checks'] 

mais cela ne me donne la dernière valeur. Ce que je veux, c'est tous ceux qui ont été sélectionnés dans une liste par ex. 1,3,4

Merci

Répondre

48

Essayez ceci:

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

some_var contiendra [1,3,4] (ces valeurs qui ont été vérifiés)

+1

cela devrait être 'request.POST.getlist ('checks')' – Claudiu

17

Cela va corriger votre problème,

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

Si vous écrivez some_var = request.POST.getlist('checks') peut ne pas fonctionner correctement.

+0

C'est la façon dont vous devez le faire pour Django 1.8+ (je ne suis pas sûr sur les versions antérieures ou quelle version l'OP utilisait au temps). – tokyovariable

+0

Voulez-vous dire 'getlist ('checks', [])'? Si c'est le cas, au moins dans [version 1.10] (https://docs.djangoproject.com/fr/1.10/ref/request-response/#django.http.QueryDict.getlist), les crochets ne sont pas obligatoires. 'getlist' retournera une liste vide par défaut, pour les clés manquantes. –

Questions connexes