Django-fr

Forum

#1 22-04-2014 18:38:17

graminou
Membre
Lieu : Vénissieux (Rhône)
Inscription : 28-12-2010
Messages : 7

Formulaire de recherche utilisable une seul fois

Bonjour à toute la troupe !

Je suis en train de me rendre chèvre tout seul comme un grand avec un truc tout bête.

Au sein d'une appli nommée partitions, j'ai inséré un champ de recherche, en suivant et adaptant ce très bon tuto : http://julienphalip.com/post/2825034077 … -in-a-snap. J'ai inséré le champ recherche au sein du template partition_list.html de la vue PartitionList de la façon suivante :

<form action="/recherche/" method="GET">
        <input type="search" name="q" placeholder="Votre recherche">
        <input type="submit" value="Rechercher" >
</form>

L'action sur le bouton Rechercher m'oriente donc vers l'url suivante :

url(r'^recherche/$',  search,  name='partition-recherche' ),

et la vue def search(request) dispatche les résultats trouvés dans le même template partition_list.html (le contexte 'partitions_list' utilisé dans le template a été rempli par les résultats de recherche au lieu de Partition.objects.all()).

Jusque là, tout fonctionne à merveille : je retombe donc sur ma liste de partitions correspondant à ma recherhce, sur le même modèle que ma liste complète de partitions. L'url de cette page est naturellement :

http://127.0.0.1:8000/partitions/recherche/?q=ma_recherche

.

En particulier, j'ai encore le petit champ de recherche avec son joli bouton "Rechercher". Et s'il me vient, à partir de cette page, l'idée saugrenue de recommencer une recherche, l'action du bouton "Rechercher" m'oriente non pas vers une gentille page de résultat mais vers l'url

http://127.0.0.1:8000/partitions/recherche/recherche/?q=autre_recherche

.
Et là, je deviens chèvre parce que je comprends tout à fait le mécanisme, mais je ne le comprends pas vraiment non plus. En tous les cas, j'aimerais parvenir à l'url

http://127.0.0.1:8000/partitions/recherche/?q=autre_recherche

avec une seul fois /recherche/ donc.

Afin de ne pas alourdir inutilement ce post, je ne vous donne pas plus de code pour l'instant, mais bien évidemment, s'il le faut, je vous donnerai tout ce dont vous aurez besoin pour m'aider.

Merci d'avance pour aide ! Bêêêêê !
JMarc

Hors ligne

#2 23-04-2014 07:04:14

Xavier Ordoquy
Administrateur
Lieu : Puteaux, France
Inscription : 12-10-2011
Messages : 312
Site Web

Re : Formulaire de recherche utilisable une seul fois

Bonjour,

Il y a plusieurs incohérences dans le code que tu as mis au dessus.
Si ton formulaire a action="/recherche/" alors ton url de recherche doit être http://127.0.0.1:8000/recherche/?q=ma_recherche

Vérifie que tu n'as pas mis action="recherche/" ce qui ajouterai recherche à chaque soumission du formulaire et expliquerait ton url et le fait que cela s'ajoute.

Hors ligne

#3 23-04-2014 08:12:11

graminou
Membre
Lieu : Vénissieux (Rhône)
Inscription : 28-12-2010
Messages : 7

Re : Formulaire de recherche utilisable une seul fois

Mille merci Xavier !

C'était donc cela : l'url de l'action était incorrecte et devait être "/partitions/recherche/". Et comme on m'a toujours dit qu'il ne fallait pas coder en dur les url dans les templates, je l'ai transformé en <form action="{% url 'partition-recherche' %}" method="GET">, ce qui me parle mieux en terme de workflow : quand j'appuie sur le bouton Rechercher, les mots clé que j'ai indiqués dans le formulaire sont pris dans la requête q qui part en argument de la vue 'search' appelée par l'url de nom 'partition-recherche'.

Voici donc les codes modifiés :

url(r'^recherche/$', search, name='partition-recherche' ),
<form action="{% url 'partition-recherche' %}" method="GET">.

Encore merci à Xavier et toute l'équipe !
JMarc

Hors ligne

#4 13-07-2014 20:37:51

vache67
Membre
Inscription : 27-11-2012
Messages : 12

Re : Formulaire de recherche utilisable une seul fois

salut, c'est quoi que tu fais comme appli ? Je suis aussi en train de faire une appli de gestion de mes partitions etc...

Hors ligne

#5 15-07-2014 14:13:05

graminou
Membre
Lieu : Vénissieux (Rhône)
Inscription : 28-12-2010
Messages : 7

Re : Formulaire de recherche utilisable une seul fois

Salut !
Il s'agit d'une appli, maintenant terminée, permettant, sur la base d'un catalogue (rentré à la main via l'admin, mais ce n'est pas le but de cette appli) donné, de cracher des devis en pdf. Donc, base de parittions, interface CRUD pour les clients, et CRUD devis avec un petit bouton magique qui te pond le pdf prêt à être posté.

Voilà ! Pas vraiment une appli de bibliothèque de partos, finalement.
A+
JMarc

Hors ligne

Pied de page des forums