Vous n'êtes pas identifié(e).
Bonjour
je comprend pas mon erreur
je voudrai une liste de dicotionnaire a deux valeur a partir d'un objet là
le groupe mais ça fait pareil avec les autres.
listgrp=Group.objects.all()
dico = {}
for grp in listgrp :
dico{'id'} = grp.id
dico{'name'}=grp.name
listdico.append(dico)
comme j'ai trois groupe je m'attend a voir apparaitre mes tois id et trois
nom de groupe sauf que non
j'ai bien trois dico dans ma liste mais trois fois le meme
{'name':''NomGroupe','id':'2'}{'name':''NomGroupe','id':'2'}{'name':''NomGroupe','id':'2'}
listgrp renvoi bien trois groupe differrent
si quelqu'un voit ou je me trompe ?
T.
Hors ligne
listgrp=Group.objects.all()
for grp in listgrp :
dico = {}
dico['id'] = grp.id
dico['name']=grp.name
listdico.append(dico)
Programmation Orienté Objet, si tu modifie un objet toutes les
références de cet objet sont modifiées.
Le 06/05/2011 10:45, Tonton a écrit :
> Bonjour
> je comprend pas mon erreur
>
> je voudrai une liste de dicotionnaire a deux valeur a partir d'un
> objet là le groupe mais ça fait pareil avec les autres.
>
> listgrp=Group.objects.all()
> dico = {}
> for grp in listgrp :
> dico{'id'} = grp.id <[url]http://grp.id[/url]>
> dico{'name'}=grp.name <[url]http://grp.name[/url]>
> listdico.append(dico)
>
> comme j'ai trois groupe je m'attend a voir apparaitre mes tois id et
> trois nom de groupe sauf que non
>
> j'ai bien trois dico dans ma liste mais trois fois le meme
>
> {'name':''NomGroupe','id':'2'}{'name':''NomGroupe','id':'2'}{'name':''NomGroupe','id':'2'}
>
> listgrp renvoi bien trois groupe differrent
> si quelqu'un voit ou je me trompe ?
>
> T.
>
>
> _______________________________________________
> django mailing list
> django _AT_ lists.afpy.org
> [url]http://lists.afpy.org/mailman/listinfo/django[/url]
Dernière modification par Rémy HUBSCHER (06-05-2011 09:53:25)
Hors ligne
Met le dico = {} dans ta boucle "for grp in listgrp..."
En python, un nom de variable c'est comme une étiquette, pas comme une
boite. Si tu change ce qui est dans la boite dont l'étiquette est "dico", ça
le change pour "toutes les étiquettes".
Je suis pas certain que mon explication soit claire... désolé si c'est pas
le cas
Mathieu
Le 6 mai 2011 10:45, Tonton <to.tonton _AT_ gmail.com> a écrit :
> Bonjour
> je comprend pas mon erreur
>
> je voudrai une liste de dicotionnaire a deux valeur a partir d'un objet là
> le groupe mais ça fait pareil avec les autres.
>
> listgrp=Group.objects.all()
> dico = {}
> for grp in listgrp :
> dico{'id'} = grp.id
> dico{'name'}=grp.name
> listdico.append(dico)
>
> comme j'ai trois groupe je m'attend a voir apparaitre mes tois id et trois
> nom de groupe sauf que non
>
> j'ai bien trois dico dans ma liste mais trois fois le meme
>
>
> {'name':''NomGroupe','id':'2'}{'name':''NomGroupe','id':'2'}{'name':''NomGroupe','id':'2'}
>
> listgrp renvoi bien trois groupe differrent
> si quelqu'un voit ou je me trompe ?
>
> T.
>
> _______________________________________________
> django mailing list
> django _AT_ lists.afpy.org
> http://lists.afpy.org/mailman/listinfo/django
>
Hors ligne
ah et j'imagine que c'est une typo dans ton copier/coller, mais c'est
dico['id'] par dico{'id'}
Le 6 mai 2011 10:50, Mathieu AGOPIAN <mathieu.agopian _AT_ gmail.com> a écrit :
> Met le dico = {} dans ta boucle "for grp in listgrp..."
>
> En python, un nom de variable c'est comme une étiquette, pas comme une
> boite. Si tu change ce qui est dans la boite dont l'étiquette est "dico", ça
> le change pour "toutes les étiquettes".
>
> Je suis pas certain que mon explication soit claire... désolé si c'est pas
> le cas
>
> Mathieu
>
> Le 6 mai 2011 10:45, Tonton <to.tonton _AT_ gmail.com> a écrit :
>
>> Bonjour
>> je comprend pas mon erreur
>>
>> je voudrai une liste de dicotionnaire a deux valeur a partir d'un objet là
>> le groupe mais ça fait pareil avec les autres.
>>
>> listgrp=Group.objects.all()
>> dico = {}
>> for grp in listgrp :
>> dico{'id'} = grp.id
>> dico{'name'}=grp.name
>> listdico.append(dico)
>>
>> comme j'ai trois groupe je m'attend a voir apparaitre mes tois id et trois
>> nom de groupe sauf que non
>>
>> j'ai bien trois dico dans ma liste mais trois fois le meme
>>
>>
>> {'name':''NomGroupe','id':'2'}{'name':''NomGroupe','id':'2'}{'name':''NomGroupe','id':'2'}
>>
>> listgrp renvoi bien trois groupe differrent
>> si quelqu'un voit ou je me trompe ?
>>
>> T.
>>
>> _______________________________________________
>> django mailing list
>> django _AT_ lists.afpy.org
>> http://lists.afpy.org/mailman/listinfo/django
>>
>
>
>
> --
> ====================================
> Mathieu AGOPIAN
> +33 (0)6 14 56 96 41
> http://mathieu.agopian.info
> ====================================
>
>
Hors ligne
2011/5/6 Rémy Hubscher <hubscher.remy _AT_ gmail.com>
> listgrp=Group.objects.all()
>
> for grp in listgrp :
> dico = {}
>
> dico{'id'} = grp.id
> dico{'name'}=grp.name
> listdico.append(dico)
>
>
> Merci pour vos réponse impec ça fonctionne
Hors ligne