2012-06-28 7 views
1

J'affiche une page avec 4 zones de texte, chacune stockant la valeur entrée par l'utilisateur dans une variable séparée. Ma base de données a 4 colonnes, chacune correspondant à la variable d'une zone de texte.Recherche via plusieurs champs de formulaire?

Je veux faire ceci: L'utilisateur peut entrer des valeurs dans 1,2,3 ou toutes les 4 zones de texte, et je veux découper les résultats de la recherche en fonction de chaque valeur qu'ils ont entrée. Chaque zone de texte est facultative.

Comment faire? Je suis nouveau chez Django, et je ne sais que rechercher en utilisant un terme de recherche.

Répondre

2

Je pense que vous avez besoin d'objets Q. Voir: https://docs.djangoproject.com/en/dev/topics/db/queries/#complex-lookups-with-q-objects

De la documentation:

Poll.objects.get(
    Q(question__startswith='Who'), 
    Q(pub_date=date(2005, 5, 2)) | Q(pub_date=date(2005, 5, 6)) 
) 

traduit:

SELECT * from polls WHERE question LIKE 'Who%' 
    AND (pub_date = '2005-05-02' OR pub_date = '2005-05-06') 

Vous pouvez remplir la requête Q de votre formulaire nettoyé - vous pouvez même passer outre propre() et retour le jeu de requête de cette façon, de sorte que vous pouvez simplement accéder à l'ensemble de requêtes à partir du formulaire validé.

Questions connexes