Django-fr

Forum

#1 02-03-2012 16:51:01

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

filtrage champ texte

bonjour

j'ai defini une recherche d'elements par

<form action="{% url chercher_filtre %}" method="get">

        <td><input type="text" name="q" /></td>         
        <td><input type="submit" value="valider"/></td>
..

pourquoi lorsque j entre les premiers lettres de l'element a chercher apparait sous le champ texte une suite de recherches possibles memorisees

comment ne pas afficher cela ?

comme une recherche google...

Hors ligne

#2 02-03-2012 22:30:09

quinode
Membre
Lieu : Auvergne
Inscription : 14-10-2010
Messages : 89
Site Web

Re : filtrage champ texte

<input type="text" name="q" autocomplete="off"/>

Hors ligne

#3 05-03-2012 13:40:19

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

Re : filtrage champ texte

merci

je me pose des questions avec un test sur le filtrage

pourquoi dans ma fonction units renvoie bien
[<UniteProperty2: Al2O3>, <UniteProperty2: CN56>]  c'est ok

et units2 renvoie []   ??  ce devrait etre pareil ?

voila le filtre

if 'q' in request.GET:
           q = float(request.GET['q'])
           val1 = request.GET['boite2']
           val2 = request.GET['boite2']
           
           units =  UniteProperty2.objects.filter(Q(val_champ__icontains = val1) & Q(val1__gt=q-2, val1__lte=q))
           units2=  UniteProperty2.objects.filter(Q(val_champ__icontains = val2) & Q(val2__gt=q-2, val2__lte=q))

val1 et val2 sont pourtant identiques ??

Hors ligne

#4 05-03-2012 13:53:22

Sébastien Cheminel
Membre
Inscription : 08-12-2011
Messages : 12

Re : filtrage champ texte

ne serait-ce pas plutôt :

if 'q' in request.GET:
          q = float(request.GET['q'])
          val1 = request.GET['boite2']
          val2 = request.GET['boite2']

          units =  UniteProperty2.objects.filter(
Q(val_champ__icontains =
val1) & Q(val1__gt=q-2, val1__lte=q))
          units2=  UniteProperty2.objects.filter(Q(val_champ__icontains =
val2) & Q(val1__gt=q-2, val1__lte=q))


Le 5 mars 2012 13:40, sesame <pat.100 _AT_ hotmail.fr> a écrit :

>  if 'q' in request.GET:
>           q = float(request.GET['q'])
>           val1 = request.GET['boite2']
>           val2 = request.GET['boite2']
>
>           units =  UniteProperty2.objects.filter(Q(val_champ__icontains =
> val1) & Q(val1__gt=q-2, val1__lte=q))
>           units2=  UniteProperty2.objects.filter(Q(val_champ__icontains =
> val2) & Q(val2__gt=q-2, val2__lte=q))
>

Hors ligne

#5 05-03-2012 14:15:54

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

Re : filtrage champ texte

oui ca marche

mais si je fais deux filtrages avec
q : durete vickers
q1: conduct therm___
val1:67
val2:10

units2 renvoie []
la fonction s'ecrit bien comme ca ?

if 'q' and 'q1' in request.GET:
           q = float(request.GET['q'])
           q1= float(request.GET['q1'])
           val1 = request.GET['boite2']
           val2 = request.GET['boite4']
         
           units =  UniteProperty2.objects.filter(Q(val_champ__icontains = val1) & Q(val1__gt=q-2, val1__lte=q)) # filtrage sur valeur min
           units2=  UniteProperty2.objects.filter(Q(val_champ__icontains = val2) & Q(val2__gt=q1-2, val2__lte=q1)) # filtrage sur valeur max

Hors ligne

#6 05-03-2012 14:18:30

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

Re : filtrage champ texte

j'ai inversé q et val
désolé

Hors ligne

Pied de page des forums