Оператор ИЛИ в запросах модели Джанго - PullRequest
34 голосов
/ 26 марта 2011

Я пытаюсь использовать оператор OR в функции Django filter(). Прямо сейчас у меня есть

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

но я также хочу искать по имени. Например:

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

Кто-нибудь знает, как это сделать?

Ответы [ 2 ]

90 голосов
/ 26 марта 2011

Q объектов

from django.db.models import Q

Contact.objects.filter(Q(last_name__icontains=request.POST['query']) | 
                               Q(first_name__icontains=request.POST['query']))
11 голосов
/ 28 октября 2015
result = Contact.objects.filter(last_name__icontains=request.POST['query']) | Contact.objects.filter(first_name__icontains=request.POST['query'])
...