Django-fr

Forum

#1 02-01-2011 16:37:46

beegees
Membre
Inscription : 26-12-2010
Messages : 66

Explorer un objet en mémoire ?

Bonjour tout le monde,

Je me demandais si il était possible avec Django de savoir quelles valeurs avaient les objets en mémoire ?

Par exemple avec ce code :

{'forms': [<app.form.PatientForm object at 0x028B1E70>, <app.form.NonOncoAnteriorityForm object at 0x028B1EF0>, <app.form.OncoAnteriorityForm object at 0x028BC3B0>, <app.form.CerebralAnteriorityForm object at 0x028BC410>, <app.form.FamilialAnteriorityForm object at 0x028BC550>],

Le seul but de cette manœuvre serait le débogage.

Merci d'avance pour l'aide.

beegees

Hors ligne

#2 02-01-2011 17:28:40

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

Re : Explorer un objet en mémoire ?

Brut de pomme (je débute aussi hein), voila ce que je fait pour découvrir ce que que tu peux tirer d'un objet python

print dir(form)

Rergarde ta console , ça va te lister tous les attributs appelables de cet objet, par exemple tu vas découvrir que forms possède un attribut fields.
TU peux donc faire :

print form.fields

Qui est une liste du nom des champs du formulaire
Pour voir les données passées à la validation, faut examiner

form.cleaned_data['nom_du_champ']

Encore une fois, la doc Django est très bien faite, enfin en anglais

Dernière modification par quinode (02-01-2011 17:29:05)

Hors ligne

#3 02-01-2011 18:55:32

beegees
Membre
Inscription : 26-12-2010
Messages : 66

Re : Explorer un objet en mémoire ?

(Re)Bonjour Dominique,

Merci pour ta réponse.

ça ne fonctionne pas chez moi.

J'ai ce code :

form.append(PatientForm(req,instance=pat))
    form.append(NonOncoAnteriorityForm(req,instance=instancenoa))
    form.append(OncoAnteriorityForm(req,instance=instanceoa))
    form.append(CerebralAnteriorityForm(req,instance=instanceca))
    form.append(FamilialAnteriorityForm(req,instance=instancefa))

Ce qui me donne ceci :

{'forms': [<neuro.form.PatientForm object at 0x02814E10>, <neuro.form.NonOncoAnteriorityForm object at 0x02814E90>, <neuro.form.OncoAnteriorityForm object at 0x02821350>, <neuro.form.CerebralAnteriorityForm object at 0x028213B0>, <neuro.form.FamilialAnteriorityForm object at 0x028214F0>]

Je fais form.filed => plantage.

En fait, je me suis mal exprimé, comment afficher le contenu du dictionnaire suivant ? :

return render_to_response("input/patient.html", {'forms' : form, 'dmu': dmu})

Tu vois où j'ai fait l'erreur ?

Merci pour l'aide wink

beegees

Dernière modification par beegees (02-01-2011 19:42:21)

Hors ligne

#4 02-01-2011 23:04:47

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

Re : Explorer un objet en mémoire ?

Je pense que ce que tu cherche c'est un debugger. Celui de python s'appel pdb. http://docs.python.org/library/pdb.html


pour placer un "breakpoint":

    import pdb; pdb.set_trace()

Il y a aussi une version améliorée à la ipython qui s'appelle ipdb

Hors ligne

Pied de page des forums