43 votes

Opérateur OR dans les requêtes de modèle Django

J'essaie d'utiliser un OR dans la fonction Django filter() . En ce moment j'ai

 contactlist = Contact.objects.filter(last_name__icontains=request.POST['query'])

mais je veux aussi faire une recherche par prénom. Par exemple:

 contactlist = Contact.objects.filter(last_name__icontains=request.POST['query'] OR first_name__icontains=request.POST['query'])

Est-ce que quelqu'un sait comment faire ça?

110voto

Yuji 'Tomita' Tomita Points 46106

objets Q

 from django.db.models import Q

Contact.objects.filter(Q(last_name__icontains=request.POST['query']) | 
                               Q(first_name__icontains=request.POST['query']))

13voto

Eric Points 139
result = Contact.objects.filter(last_name__icontains=request.POST['query']) | Contact.objects.filter(first_name__icontains=request.POST['query'])

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X