Django-fr

Forum

#1 21-06-2011 16:16:50

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

comparaison de listes

bonjour
je souhaite comparer deux listes d'objet identique avant et apres
modification

par exemple j'ai 5 element enregistrés

je les affiches puis on en supprime un ou deux et on en ajoute un ou deux
...

je reçois ma nouvelle liste dans request en json

#ma liste d'objet
[CODE]

layers=jsonparam['layerlist']
lstIdLyr=[ ]
for lyr in layers :
    lstIdLyr.append(lyr['id_lyr'])
originalLayerList =Layer.objects.filter(id_ump=idump)
for elt in originalLayerList:
    if elt.id_lyr not in lstIdLyr:
        elt.delete()
[/CODE]
puis
  for lyr in layers
    enregiste(lyr)

helas j'ai un gros effet de bord qui m'indique que je fait n'imorte quoi !:

j'ai plusieurs style associé au layer  dans chaque style j'ai une clef qui
indique quel layer est concerné
et a chaque mise a jour de la carte mes styles sont effacés
donc je loose bien proprement ....

pourtant il me semble n'effacer que les layers de originallist n'etant pas
dans layers .....

si ça parle a quelqu'un
Merci
T.

Hors ligne

#2 22-06-2011 16:56:29

Jean Boussier
Membre
Inscription : 11-09-2010
Messages : 13

Re : comparaison de listes

Le 21 juin 2011 à 17:16, Tonton a écrit :

> helas j'ai un gros effet de bord qui m'indique que je fait n'imorte quoi !:
>
> j'ai plusieurs style associé au layer  dans chaque style j'ai une clef qui indique quel layer est concerné
> et a chaque mise a jour de la carte mes styles sont effacés
> donc je loose bien proprement ....

Ça c'est pas un effet de bord, c'est un bug. Met des point de debug, ou simplement des print(repr()) et regarde ce qui ne vas pas.
À vue de nez il est probable que ton jsonparams te renvoie une liste contenant des ids en str, mais c'est qu'une supposition.

Hors ligne

Pied de page des forums