как объединить фильтр icontains, чтобы он выполнял поиск по одному полю и другому одновременно - PullRequest
0 голосов
/ 05 марта 2019
def search(request):
    queryset_list = Listing.objects.order_by('-list_date').filter(is_published=True)

    if 'keywords' in request.GET:
        keywords = request.GET['keywords']
        if keywords:
            queryset_list = queryset_list.filter(description__icontains=keywords)
        if keywords:
            queryset_list = queryset_list.filter(realtor__name__icontains=keywords)

Я хотел бы иметь возможность искать 2 вещи одновременно.например, если описание содержит «большой» и realtor__name нет, я бы хотел видеть объект с большим и таким же для realtor__name, даже если в описании его нет, я бы хотел его получить.Спасибо

1 Ответ

0 голосов
/ 05 марта 2019

Похоже, вам нужен оператор or

Пример:

from django.db.models import Q


if keywords:
    queryset_list = queryset_list.filter(Q(description__icontains=keywords) |
                                         Q(realtor__name__icontains=keywords))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...