Django-fr

Forum

#1 04-02-2011 10:24:59

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

objet temporaire

Bonjour

je debute pas mal en prog etc.. cela as du se lire ... :oD

je souhaite serailiser mes return en json  pour l'instant ça marche depuis
un objet  ou une requete

mais je me demande s'il n'est pas plus simple de creer un objet temporaire
qui serait l'image d'une requete sur deux ou trois table

par exemple

une liste de voiture ayant des propriaitaire des utilisateur  des options

on se retrouve vite avec des id partout

et l'objet que je souhait retourner doit contenir l'ensemble des information
comme

liste de voiture
id voiture nonvoiture couleurvoiture iduser nonuser ageuser idproprio
nomproprio idoptions nomoption coutoptions

c'est un exemple
peut ton injecter les infos dans un objet qui n'existe pas dans model que
l'on creer temporairement dans une methode pour absorber les infos qu'on
serialize ensuite .
en javascript on ajoute les attributs d'un objet à a volé comment dans
django on arrive à l'équivalent ou presque ...

(:o()
eric

Hors ligne

#2 05-02-2011 15:19:13

quinode
Membre
Lieu : Auvergne
Inscription : 14-10-2010
Messages : 89
Site Web

Re : objet temporaire

Tu peux utiliser soit une classe "objet" python:

class mon_objet(object)

et tu te report à toutes les bonnes docs sur la prog objet dans python : tu lui donne des attributs des méthodes etc

Si c'est juste pour afficher en itération des resultats, le plus simple c'est de faire des structures listes ou dict:

#dans ta view...
maliste = {} # c'est un dict
for z in Modele1.objects.all():
    maliste[z.id] = {'nom' : z.nom , 'couleur':z.couleur',....}#un dict dans un dict

Là j'ai fait un dict avec comme clé l'id de Modele1
Ensuite on peut ajouter d'autres éléments aux dict de chaque fiche en y accedant par cette clé  maliste[objet.id]['nouvelle_cle'] = 'nouvelle_valeur'

Et enfin tu utilise ça dans ton template normalement :

{% for truc in maliste %}
    {{truc.nom}}, {{truc.couleur}}
{% endfor %}

Pour la serialisation, c'est soit un bon template JSON soit tu peux aussi  utiliser json.dumps sur ta structure de données (liste ou dict)


Dominique

Dernière modification par quinode (05-02-2011 15:19:48)

Hors ligne

Pied de page des forums