Bonjour, je cherche à creer une condition pour un formulaire de recherche.

En effet:
- j'ai une table "ville" avec id et ville
- j'ai un formulaire avec 2 champs: "départ" et "arriver"

Lorsque les deux champs sont remplis, pas de soucis, la requête s’exécute bien. Mais si je n'ai qu'un champs de rempli, cela m'affiche un message d'erreur. Cette, je peux contourner cela en forçant l'utilisateur à remplir tout les champs mais bon.

Je souhaiterai faire un XOR, un peu comme en PHP

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
views.py
def recherche(request):
    if request.method == 'POST':
        recherche_form = RechercheForm(request.POST)
 
        reponse = request.POST.get('depart')
        print 'Reponse'
        print reponse
 
        Id= Ville.objects.get(ville=reponse).id
        print 'Id'
        print Id
 
        reponse_a = request.POST.get('arriver')
        print 'Reponse_a'
        print reponse_a
 
        Id_a= Ville.objects.get(ville=reponse_a).id
 
        if recherche_form.is_valid():
            depart = recherche_form.cleaned_data['depart']
            arriver = recherche_form.cleaned_data['arriver']
 
            resultat = Formulaire.objects.filter(Q(depart_id=Id)&Q(arriver_id=Id_a))
            print resultat
                #Affichage de la page "resultat_recherche"
            return render(request, 'blabla/resultat_recherche.html', {'resultat_recherche': resultat})
    else:
        recherche_form = RechercheForm()
 
	return render(request, 'blabla/recherche.html', {'recherche_form': recherche_form})
J'ai essayé en mettant des
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
if reponse==None:
id=None
ou
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
if request.POST.get('depart')==None:
reponse=None
Et quelques conditions avant les requetes, mais cela ne veut rien savoir !!

Merci à vous