Django-fr

Forum

#1 12-10-2011 08:18:36

Tonton
Membre
Inscription : 20-09-2010
Messages : 75

trier des obbjets par attributs

Bonjour

je recupere une liste d'objet
et je souhaiterai trier cette liste.

list.sort() semble ne pas y arriver sachant que je voudrais trier cette
liste selon un des attributs de l'objet comme son nom objet.nom

comment celà est il réalisable ?

merci
T.

Hors ligne

#2 12-10-2011 08:23:47

Xavier Ordoquy
Administrateur
Lieu : Puteaux, France
Inscription : 12-10-2011
Messages : 312
Site Web

Re : trier des obbjets par attributs

Bonjour,

Tu devrais trouver des réponses grâce à sorted (http://wiki.python.org/moin/HowTo/Sorting/)

En particulier:
sorted(object_list, key=lambda object: object.name)

Cordialement,
Xavier.

Le 12 oct. 2011 à 09:18, Tonton a écrit :

> Bonjour
>
> je recupere une liste d'objet
> et je souhaiterai trier cette liste.
>
> list.sort() semble ne pas y arriver sachant que je voudrais trier cette liste selon un des attributs de l'objet comme son nom objet.nom
>
> comment celà est il réalisable ?
>
> merci
> T.
> _______________________________________________
> django mailing list
> django _AT_ lists.afpy.org
> http://lists.afpy.org/mailman/listinfo/django

Hors ligne

#3 12-10-2011 13:54:16

florian
Membre
Inscription : 14-10-2010
Messages : 7

Re : trier des obbjets par attributs

Bonjour,

tu peut aussi utiliser "order_by":
https://docs.djangoproject.com/en/1.3/ref/models/querysets/#order-by

Le 12 octobre 2011 03:23, Xavier Ordoquy <xordoquy _AT_ linovia.com> a écrit :

> Bonjour,
>
> Tu devrais trouver des réponses grâce à sorted (
> http://wiki.python.org/moin/HowTo/Sorting/)
>
> En particulier:
>
> sorted(object_list, key=lambda object: object.name)
>
>
> Cordialement,
> Xavier.
>
> Le 12 oct. 2011 à 09:18, Tonton a écrit :
>
> Bonjour
>
> je recupere une liste d'objet
> et je souhaiterai trier cette liste.
>
> list.sort() semble ne pas y arriver sachant que je voudrais trier cette
> liste selon un des attributs de l'objet comme son nom objet.nom
>
> comment celà est il réalisable ?
>
> merci
> T.
> _______________________________________________
> django mailing list
> django _AT_ lists.afpy.org
> http://lists.afpy.org/mailman/listinfo/django
>
>
>
> _______________________________________________
> django mailing list
> django _AT_ lists.afpy.org
> http://lists.afpy.org/mailman/listinfo/django
>

Hors ligne

#4 12-10-2011 14:10:04

Tonton
Membre
Inscription : 20-09-2010
Messages : 75

Re : trier des obbjets par attributs

je peut utilise order_by dans une requete sur l'ensemble des objet non pas a
partir d'une liste mais

pour preciser mon souci

j'ai des objets dataset  avec id libel desc type

pour un group d'utilisateur certain objet sont accessible  (avec une table
idgrp et idDts)

et là je souhaite afficher les objet accessible par les groupe de
l'utilisateur  ET trié par libel

je bloque sur ce tri

maintnant un peu de mon code (non puriste car ça marche pô )

grplist = User.objects.get(id=user.id).groups.all()
for grp in grplist:
            listDtsGroup =Dataset_Group.objects.filter(id_grp=grp.id)
            for listgrp in listDtsGroup :
                adts = Dataset.objects.get(dts=listgrp.id_dts)
                listDts.append([id_dts, libel_dts, desc_dts, type_dts])
#là je tri ma liste
listDts.sort(Dataset, keymap object: Dataset.libel)
listjson = ListToJson(listDts)

ne marche pô : Dataset has no attributs libel  :'( Je suppose que l'objet
est vide le manager n'ayant pas fait la requete)

peut t'on partir d'une liste d'id  pour effectuer la requete et trier en
meme temps ?
hypotetiquement :
Dataset.objects.filter (id = iddts in listdts).order_by("libel")

T.

Hors ligne

Pied de page des forums