Vous n'êtes pas identifié(e).
Bonjour
j'utilise un programme sous django et ma question concerne une fonction python du module views
si j'ai la fonction suivante
def search_filter2(request):
try:
.......
if len1==0 or len2==0 or len(lemat)==0:
raise(ValueError)
return render_to_response('material/search_results_filt2.html',
{'res1': res1,
.....
context_instance=RequestContext(request))
except ValueError:
return render_to_response('material/erreur2.html')
alors j'aurai bien l appel au template erreur2 et l'affichage de la page avec le message d'eerreur si le test if if len1==0 or len2==0 or len(lemat)==0
est verifie
maintenant si j'ai la fonction suivante qui appelle une autre fonction :
def affich_graphe2(request):
try:
.....
valeur_T, valeur_min, valeur_max, valeur_moy, nomfichier = calcul(val_nom, valT1)
et pour la fonction calcul
def calcul(maref, maprop):
try:
......
if sizedata==0:
raise(ValueError)
........
return valeur_T, valeur_min, valeur_max, valeur_moy, nomfichier
except ValueError:
#return render_to_response('material/erreur2.html')
ici l'appel du template erreur2 ne marche pas
quelqu'un peut il m'expliquer comment faire ????
Hors ligne
Bonjour,
Si tu veux que ta vue retourne le bon template, il faut mettre le block try/except à ce niveau
def calcul(maref, maprop):
...
if sizedata==0:
raise(ValueError)
...
return valeur_T, valeur_min, valeur_max, valeur_moy, nomfichier
puis
affich_graphe2(request):
...
try:
valeur_T, valeur_min, valeur_max, valeur_moy, nomfichier = calcul(val_nom, valT1)
except ValueError:
return render_to_response('material/erreur2.html')
...
Note au passage, en fonction de la version de Django, utiliser plutôt render que render_to_response (voir https://docs.djangoproject.com/en/dev/t … s/#render)
Xavier.
Hors ligne
bonjour
je comprend pas
si j'ai dans la fonction calcul
if sizedata==0:
raise(ValueError)
je n'ai plus le block try/except ?
Hors ligne
si je met un print dans affich_graphe2 le programme passe bien mais n'execute pas le return render_to_response
pourquoi le render_to_response s' execute pas ??
affich_graphe2(request):
...
try:
valeur_T, valeur_min, valeur_max, valeur_moy, nomfichier = calcul(val_nom, valT1)
except ValueError:
print 'passe'
return render_to_response('material/erreur2.html')
Hors ligne
quelqu'un a t il une idée ???
que je fasse apres le print 'passe'
raise Http404
ou
return redirect('http://www.google.com/')
ou
return render_to_response('material/erreur2.html', context_instance=RequestContext(request))
rien n'y fait..
Hors ligne