Vous n'êtes pas identifié(e).
bonjour
j' ai une fonction qui lit des donnees dans ma base et me retourne la valeur max et min correspondant a un certain materiau et une proprieté specifique
je voudrai lorsqu'aucune donnee n'est enregistreé pour le materiau XXX il y ait un message d'erreur en retour
def calcul(maref, maprop):
data = Essai_Temperature.objects.filter(name__name=maref, val_champ=maprop)
val_min_base=[]
val_max_base=[]
val_T_base=[]
vref = []
for e in data:
val_T_base.append(e.valT)
val_min_base.append(e.val10)
vref.append(e.val_ref)
l1=0
l2=0
l3=0
sizeTT=0
val_TT_base=[]
sizedata = len(val_T_base)
if sizedata==0:
print 'passage 0'
return HttpResponse('<h1>aucune donnee dans la base</h1>')
.....
je detecte bien que la taille de mon tableau est nulle mais je continue a executer le reste du code
pour avoir en retour le message suivant
need more than 1 value to unpack...
est ce bien HttpResponse qu'il faut utiliser ?
Hors ligne
bonjour
en fait j'ai une premiere fonction qui appelle la fonction calcul
celle ci lit dans la base les donnees enregistrees de temperature pour un materiau donné et renvoie la liste des temperatures, la valeur min, la valeur max
voici la premiere fonction
def affich_graphe(request):
try:
val_nom = request.GET['materiau']
valT1 = request.GET['propriete'] # propriete 1
#lavaleur1 = request.GET['valeur1']
interpol = request.GET['interpolation']
print val_nom
print valT1
moy=[]
moy1=[]
if val_nom !='0':
valeur_T, valeur_min, valeur_max, valeur_moy, nomfichier = calcul(val_nom, valT1)
moy = moyenne(valeur_min, valeur_max)
print 'vt', valeur_T
datas20= {'val_T':valeur_T, 'val_min': valeur_min, 'val_max': valeur_max,
'val_moy': valeur_moy,
'inter':interpol}
#'lechoix1':lavaleur1, 'inter':interpol}
data = simplejson.dumps(datas20)
return HttpResponse(data, mimetype= 'application/json')
except Exception, msg:
print 'erreur affichage', msg
raise
lorsque le materiau est enregistre mais qu'il n'ya aucune donnee temperature enregistree la liste est vide et j'obtient le message
erreur affichage need more than 1 value to unpack
moi ce que je voudrai c'est que j'ouvre une nouvelle page et que j'affiche
"aucune donnee enregistree"
voila la fonction calcul (ecourtée)
def calcul(maref, maprop):
try:
data = Essai_Temperature.objects.filter(name__name=maref, val_champ=maprop)
val_min_base=[]
val_max_base=[]
val_T_base=[]
vref = []
for e in data:
val_T_base.append(e.valT)
val_min_base.append(e.val10)
vref.append(e.val_ref)
l1=0
l2=0
l3=0
vv=0
sizeTT=0
val_TT_base=[]
sizedata = len(val_T_base)
# determination du nb de series identiques
if sizedata==0:
print 'pass'
raise(ValueError)
else:
while l2 <= sizedata-2:
if (l2==0):
val_TT_base.append(val_T_base[l2])
else:
.........
return valeur_T, valeur_min, valeur_max, valeur_moy, nomfichier
except ValueError:
print 'pass2'
return HttpResponse('material/erreur.html')
lorsque la liste est vide (sizedata=0) je vais bien printer 'pass2' mais rien d'autre
visiblement ce ne doit pas etre HttpResponse le bon moyen de proceder... ??
Hors ligne