Django: поиск с помощью __icontains по всем полям дает дубликаты - PullRequest
0 голосов
/ 26 января 2019

У меня есть модель Django, которая называется Books (models.Model) и имеет множество полей, включая автора, название и год создания.Я хочу отфильтровать этот список по всем полям модели Book.Например, если я ищу «Винни», я хочу, чтобы все экземпляры Книги с «Винни» в названии, авторе или созданном году появлялись, но НЕ хочу, чтобы один и тот же экземпляр модели появлялся.Например, если «Винни» присутствует в названии И авторе конкретного экземпляра, я хочу, чтобы этот экземпляр появлялся только один раз.

Я попытался использовать следующий код для достижения этой цели:

books = Books.objects.filter(Q(title__icontains=search_query) | Q(author__icontains=search_query) | Q(year_created__icontains(search_query)).order_by("author")

где search_query - это переменная, которая представляет поисковый запрос.

Однако я получаю повторяющиеся результаты, как объяснено ранее.Как я могу предотвратить эти повторяющиеся результаты?

Любая помощь с благодарностью!

Спасибо!

...