Vous n'êtes pas identifié(e).
bonjour
mon probleme est le passage de valeurs
j'ai le template avec le champ d'affichage de la donnee numerique a convertir (bouton submit)
la liste deroulante (option value=...) permettant de selectionner l'unité d'arrivée
lorsque je valide ( <form action="{% url converti %}" method="get">) je renvoie vers une url nommée qui ensuite me redirige vers une fonction du module views... def conversion(request,...)
comment ensuite passer ces parametres pour le calcul ?
Hors ligne
S'ils sont envoyé via un formulaire, ils sont présent dans request.GET
Hors ligne
bonjour
je recupere bien la valeur numerique du champ submit avec if 'q' in request.GET
pas la selection de la liste deroulante..puisque q est lié uniquement au champ numerique
Hors ligne
Fait un print request.GET normalement tu as toutes les infos
Hors ligne
pas dans un template
Hors ligne
Salut,
Fait un print request.GET dans ta vue, pas dans le template en effet.
C'est le meilleur moyen pour savoir ce qui est traine ta variable GET.
Si tu veux l'afficher dans le template (même si je n'en vois pas
l'intérêt pour ce type de debug), passe le tableau GET à ton context et
fait foreach dessus dans ton template.
Hors ligne
bonjour
je recupere bien dans ma vue la valeur numerique et la valeur selectionnée de la liste deroulante
Est ce qu'il y a un moyen simple d'envoyer ces deux données vers une fonction de type :
def convert(x, unit1, unit2):
if (unit1 in length) and (unit2 in length):
factor1 = length[unit1]
factor2 = length[unit2]
return factor2*x/factor1
else:
return False
avec length definit par :
ength= { 'meter': 1.0,
'm': 1.0,
'ft': 3.048e-1,
'feet' : 3.048e-1,
'angstrom': 1.0e-10,
'light_year':9.46073e+15,
'micron': 1.0e-06,
'mil': 2.54e-05,
'km': 1000,
'kilometer':1000, etc.....
merci d'une aide
Hors ligne
oui tout simplement
convert(int(request.GET['value']), request.GET['unit_initiale'],
request.GET['unit_finale'])
Vérifie que value contient bien un int. Tu peux utiliser les
django.forms pour ce faire.
Hors ligne
merci, je vais essayer
la donnée numérique est de type floatfield ??
Hors ligne