Vous n'êtes pas identifié(e).
bonjour
voila mon probleme
j' enregistre dans ma base les champs propriete, temperature et valeur d'un materiau donné
ce qui donne par exemple plusieures series de valeur identique de temperature
20 45
20 56
20 64
50 68
50 75
50 85
50 69
je calcule dans une fonction pour chaque temperature de serie, la valeur min et max correspondante et j'affiche ces valeurs
ce qui donne par exemple :
Propriete Temperature min max
durete vickers 20 45 64
durete vickers 50 68 85
etc....
ma question est :
comment recuperer ces valeurs min et max pour les utiliser dans une fonction de filtrage du style :
liste_essais= donnee_Temperature.objects.filter(val_champ__icontains = val_TT, valeur_max__lte=val_max, valeur_min__gte=val_min).order_by('name')
La solution consisterait evidemment à rajouter une classe au model pour enregistrer dans un formulaire la temperature, la valeur min et la valeur max
comment faire autrement ?
y a t il un moyen soit de recuperer ces valeurs pour le filtrage, soit de les calculer de maniere automatique lorsqu'on remplit le premier formulaire??
Hors ligne
...
La solution consisterait evidemment à rajouter une classe au model pour enregistrer dans un formulaire la temperature, la valeur min et la valeur max
comment faire autrement ?
... soit de les calculer de maniere automatique lorsqu'on remplit le premier formulaire??
Pas sûr d'avoir compris la question, mais j'essaie de répondre:
Peut-être en utilisant un signal : https://docs.djangoproject.com/en/1.4/topics/signals/ de type post_save après avoir rempli le premier formulaire, et en comparant les valeurs min et max et les actualiser si nécessaire. Plus besoin de filtrer après et la requête sera plus légère.
Dernière modification par Philippe (31-10-2012 12:11:15)
Hors ligne
en fait j'affiche une valeur min et max qui proviennent d'un traitement apres lecture de donnees venant d'un premier formulaire
et je suis obligé d'enregistrer manuellement ces valeurs pour utiliser objects.filter
je me demandais simplement si objects.filter ne s'utilisait uniquement que dans le cas de donnees enregistrees dans la base
Hors ligne
Tu les enregistres comment ?
Avec un nouveau formulaire ?
l'idée d'utiliser un signal est de te dispenser d'un nouveau formulaire.
Pour objects.filter il faut effectivement des données dans la base.
Hors ligne
actuellement oui j'ai rajoute une classe au model pour avoir dans l'admin un formulaire et y enregistrer la temperature val min et val max
Hors ligne
en fait j'ai un certain nombre de materiaux enregistres avec leur proprietes
par exemple si je fait une requete (vmin vmax Tmin Tmax) concernant la durete vickers et si le filtrage me sort le materiau Al2O3
alors si dans la base jai trois temperatures pour la durete vickers
j'aurai val min et val max pour ces trois temperatures qui me serviront a tracer les courbes d'interpolation
j'ai donc besoin de quelque chose qui me donne le même resultat que objects.filter
Hors ligne
Si j'ai bien compris tu as 2 classes une pour tes propriétés que tu peuples par ton premier formulaire et une deuxième
pour les valeurs min et max (rattachées au materiau.propriété.temperature) que tu remplis par l'intermédiaire d'un formulaire admin.
(sans code c'est difficile de te répondre)
Plutôt que le faire manuellement, je te proposais d'utiliser un signal et un receiver pour mettre à jour
ta deuxième classe.
Peux-tu poster le code de tes 2 models.
Dernière modification par Philippe (31-10-2012 17:12:59)
Hors ligne