Django-fr

Forum

#1 22-04-2013 06:01:49

sesame
Membre
Inscription : 22-03-2011
Messages : 263

message erreur

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

#2 22-04-2013 18:01:56

Xavier Ordoquy
Administrateur
Lieu : Puteaux, France
Inscription : 12-10-2011
Messages : 312
Site Web

Re : message erreur

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

#3 23-04-2013 07:46:51

sesame
Membre
Inscription : 22-03-2011
Messages : 263

Re : message erreur

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

#4 23-04-2013 09:46:35

sesame
Membre
Inscription : 22-03-2011
Messages : 263

Re : message erreur

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

#5 24-04-2013 12:45:51

sesame
Membre
Inscription : 22-03-2011
Messages : 263

Re : message erreur

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

Pied de page des forums