AND et OR requête avec django
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:
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:
1 2
| if reponse==None:
id=None |
ou
Code:
1 2
| if request.POST.get('depart')==None:
reponse=None |
Et quelques conditions avant les requetes, mais cela ne veut rien savoir !!
Merci à vous