Как искать элементы, используя несколько полей модели - PullRequest
0 голосов
/ 01 мая 2020

Моя функция поиска в настоящее время выглядит следующим образом:

query = request.GET.get('q')
if query:
    item_list = item_list.filter(title__icontains=query) | item_list.filter(
        bike__brand__name__icontains=query) | item_list.filter(
        accessory__brand_accessory__name__icontains=query) | item_list.filter(
        bikepart__brand_part__name__icontains=query)

Я могу фильтровать свои элементы, используя отдельные поля, но я ищу фильтр, который может искать элементы, используя несколько полей. Мои товары разделены на 4 разные модели. Item модель является основной моделью, которая содержит все названия для других моделей, которые связаны с этой основной моделью: Bike, Accessory и BikePart.

Я ищу фильтрация с использованием (title__icontains=query + bike__brand__name__icontains=query), (title__icontains=query + accessory__brand_accessory__name__icontains=query), (title__icontains=query + bikepart__brand_part__name__icontains=query), но я все еще хочу иметь возможность искать элементы, используя только название или только бренд. Каков наилучший способ достичь этого?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...