Vous n'êtes pas identifié(e).
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
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
(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
beegees
Dernière modification par beegees (02-01-2011 19:42:21)
Hors ligne
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