Vous n'êtes pas identifié(e).
Bonjour,
je ne parvient pas à enlver un élément d'un queryset.
je parcoure la liste par un FOR (je suis obligé car j'ai pas mal de choses à faire pour chaque élément) et dans certain cas, je veux retirer l'élément de la liste.
maqueryset2 = maqueryset
for p in maqueryset :
XXXXXXXX
if XXXX : maqueryset2 = maqueryset2.remove(p)
maqueryset = maqueryset2
évidemment cela ne fonctionne pas au niveau de remove (remove n'est pas connu de queryset.
quand je fait .exclude(p) il me dit que p n'est pas iteratif (?).
comment dois je donc faire pour que dans ma boucle située au dessus retirer l'élément p de cette queryset ?
merci.
Hors ligne
Voici un exemple
for p in maqueryset:
if XXXX :
p.delete()
Hors ligne
> Voici un exemple
>
> for p in maqueryset:
> if XXXX :
> p.delete()
>
Y'a encore mieux :
MonModel.objects.filter(tralala).exclude(trululu).delete()
http://docs.djangoproject.com/en/dev/ref/models/querysets/#django.db.models.query.QuerySet.delete
Hors ligne
... soupir... et là, je me rends compte que je réponds à côté de la plaque.
Désolé pour le bruit.
Hors ligne
Le 21 avr. 2011 à 08:14, Epeios a écrit :
> Bonjour,
>
> je ne parvient pas à enlver un élément d'un queryset.
>
> je parcoure la liste par un FOR (je suis obligé car j'ai pas mal de
> choses à faire pour chaque élément) et dans certain cas, je veux retirer
> l'élément de la liste.
>
> maqueryset2 = maqueryset
> for p in maqueryset :
> XXXXXXXX
> if XXXX : maqueryset2 = maqueryset2.remove(p)
> maqueryset = maqueryset2
>
> évidemment cela ne fonctionne pas au niveau de remove (remove n'est pas
> connu de queryset.
>
> quand je fait .exclude(p) il me dit que p n'est pas iteratif (?).
>
>
> comment dois je donc faire pour que dans ma boucle située au dessus
> retirer l'élément p de cette queryset ?
Bonjour,
Le plus simple me semble être de traiter la queryset comme une liste :
maqueryset = list(maqueryset)
for i, item in enumerate(maqueryset):
if xxx:
maqueryset.pop(i)
Bonne journée,
David
Hors ligne