Джанго - Как отфильтровать дубликаты в запросе? - PullRequest
0 голосов
/ 20 сентября 2011

У меня есть запрос в Django, который приводит к уникальным строкам, но некоторые содержат общие значения в различных полях.Я хочу объединить эти строки с общими значениями.Пример: предположим, что каждая строка возвращает идентификатор , библиотеку, название книги, автора, и дату публикации .Я хочу знать только о названии книги, авторе и дате публикации.Кроме того, я хотел бы знать о 1 и только об одной библиотеке , где ее можно найти.Как так с использованием Django?

Ответы [ 2 ]

2 голосов
/ 21 сентября 2011

Не могли бы вы попробовать это:

Books.objects.all().only('title', 'author', 'date').extra(where=['library IS NOT NULL']).distinct()
0 голосов
/ 21 сентября 2011

Скорее всего, ваша модель данных неполна. Похоже, вы пытаетесь найти библиотеку, которая владеет определенной книгой. В случае, когда имеется много библиотек, владеющих указанной книгой, вам понадобятся некоторые критерии различения, чтобы база данных могла фильтровать список библиотек до одной и только одной. В противном случае, если вам действительно все равно, рассмотрите возможность использования метода limit.

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