Django-fr

Forum

#1 22-08-2011 12:23:28

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

conversion d'unites

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

#2 22-08-2011 12:47:27

Rémy HUBSCHER
Membre
Inscription : 11-08-2010
Messages : 161

Re : conversion d'unites

S'ils sont envoyé via un formulaire, ils sont présent dans request.GET

Hors ligne

#3 23-08-2011 09:30:50

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

Re : conversion d'unites

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

#4 23-08-2011 09:38:51

Vincent
Membre
Inscription : 08-08-2011
Messages : 20

Re : conversion d'unites

Fait un print request.GET normalement tu as toutes les infos

Hors ligne

#5 23-08-2011 10:18:29

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

Re : conversion d'unites

pas dans un template

Hors ligne

#6 23-08-2011 10:56:10

SBillion
Membre
Lieu : grenoble
Inscription : 05-08-2011
Messages : 43
Site Web

Re : conversion d'unites

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

#7 24-08-2011 10:35:18

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

Re : conversion d'unites

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

#8 24-08-2011 10:45:38

Rémy HUBSCHER
Membre
Inscription : 11-08-2010
Messages : 161

Re : conversion d'unites

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

#9 24-08-2011 13:08:59

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

Re : conversion d'unites

merci, je vais essayer

la donnée numérique est de type floatfield  ??

Hors ligne

Pied de page des forums