Vous n'êtes pas identifié(e).
Bonjour
j'ai une question plus python que django mais ça devrai répondre easy ;o)
je reçoit bout de request de ce type là
{"obj_id":"5","listmachin":[{"keyX":"valX","keyY":"valY","keyZ","valY"},{"keyX":"valX","keyY":"valY","keyZ","valY"},{"keyX":"valX","keyY":"valY","keyZ","valY"}]}
donc je json.loads ce bout
jsonparam['obj_id'] me renvoi bien 5 comme valeur
là ou je peche c'est pour lire mes trois objet machin j'essai d'avoir un
machin0 machin1 machin2
peut etre vaut il mieux un machin.X machin.Y machin.Z et sauveMachin Next ?
si ça parle a quelqu'un ?
tonton
Hors ligne
> là ou je peche c'est pour lire mes trois objet machin j'essai d'avoir un
> machin0 machin1 machin2
> peut etre vaut il mieux un machin.X machin.Y machin.Z et sauveMachin Next ?
Voilà ce qui marche chez moi :
http://friendpaste.com/1HcXqekKbiTV7BH5vclB3k
Quel est le problème ?
Hors ligne
2011/2/25 Bruno Bord <mlbrunobord _AT_ gmail.com>
Voilà ce qui marche chez moi :
http://friendpaste.com/1HcXqekKbiTV7BH5vclB3k
Merci mais je ne connais pas le nombre de machin...
je ne peux pas numeroter [0] pour le premier etc..
j'instancie dans chaque boucle un machin et le sauvegarde
machins = jsonparam['listmachin']
for truc in machins
oneMachin=[ ]
oneMachin.append(truc['X])
oneMachin.append(truc['Y'])
oneMachin.append(truc['Z'])
nobj = Machin(id_X=oneMachin[0], oneMachin[1],oneMachin[2])
nobj.save()
j'ai encore un souci car disont la valeur de Y est une clef etrangere du
coup le framework rale a la sauvegarde ..
T.
Hors ligne
Salut,
Pourquoi t'ennuies tu à faire à la volée une liste que tu n'utilises pas ?
N'est ce pas plus simple de faire :
machins = jsonparam['listmachin']
for truc in machins
nobj = Machin(id_X=truc['X'], truc['Y'], truc['Z'])
nobj.save()
Voire même explicitement utiliser les noms des attributs du modèle,
fonctionnellement ça ne change rien mais c'est toujours mieux d'être explicite
dans son code quand ça mange pas de pain :
machins = jsonparam['listmachin']
for truc in machins
nobj = Machin(
id_X=truc['X'],
ton_attr_pour_Y=truc['Y'],
ton_attr_pour_Z=truc['Z']
)
nobj.save()
> j'ai encore un souci car disont la valeur de Y est une clef etrangere du
Une clé étrangère ? Tu veux dire que l'attribut qui doit recevoir cette valeur
est une relation vers un objet (genre pour un foreignkey) ?
Si c'est ça, il te suffit de faire un :
monmodel.objets.get(ton_attr_pour_Y=truc['Y'])
.. dans ta boucle avant d'attribuer Y à ton nouvel objet à créer.
Attention tout de même, tu utilises des données JSON, ce ne sont pas des
données de confiances vu qu'elles n'ont probablement pas été validé par un
contrôleur, tu peux donc avoir des erreurs, voir des problèmes de sécurités
dans certains cas.
Le lundi 28 février 2011 09:46:28, Tonton a écrit :
> 2011/2/25 Bruno Bord <mlbrunobord _AT_ gmail.com>
> Voilà ce qui marche chez moi :
>
> http://friendpaste.com/1HcXqekKbiTV7BH5vclB3k
>
>
> Merci mais je ne connais pas le nombre de machin...
> je ne peux pas numeroter [0] pour le premier etc..
>
> j'instancie dans chaque boucle un machin et le sauvegarde
>
> machins = jsonparam['listmachin']
> for truc in machins
> oneMachin=[ ]
> oneMachin.append(truc['X])
> oneMachin.append(truc['Y'])
> oneMachin.append(truc['Z'])
> nobj = Machin(id_X=oneMachin[0], oneMachin[1],oneMachin[2])
> nobj.save()
>
> j'ai encore un souci car disont la valeur de Y est une clef etrangere du
> coup le framework rale a la sauvegarde ..
>
> T.
Hors ligne
2011/2/28 David THENON <david.thenon _AT_ wanadoo.fr>
> Salut,
>
> Pourquoi t'ennuies tu à faire à la volée une liste que tu n'utilises pas ?
>
> Ok je me doutai que ce soit possible
Une clé étrangère ? Tu veux dire une foreignkey ;o)
monmodel.objets.get(ton_attr_pour_Y=truc['Y'])
> mon_att = get_object_or_404 (ModelY , idmonModelY = truc['Y'])
impec merci
> Attention tout de même,
>
> vi un souci permanent la securité dans le web / les requetes pouvant etre
modifié et rejoué ainsi que les id de cession ...
mon objet ne se sauvegarde pas !
je n'ai pourtant pas de retour d'erreur
ou peut-on lire si il y as un souci pour ecrire dans la base ?
T.
Hors ligne
au temps pour moi ! manque .save()
Hors ligne