аватар question@mail.ru · 01.01.1970 03:00

Удалить дубликаты из queryset

Добрый день, имеется queryset, нужно из него удалить дубликаты:

example = models.Object.objects.values('name', 'photo__name').distinct()

имеем джоин, в результате нужно получить чтобы name и photo__name не имели одинаковых значений, как это реализовать используя Django ORM ? Cпасибо!

аватар answer@mail.ru · 01.01.1970 03:00

Есть решение в лоб

example = models.Object.objects.values('name', 'photo__name').extra(    where=['""name"" != ""photo__name""']).distinct()

которое генерирует примерно следующий SQL

SELECT ""object"".""name"", ""photo"".""photo__name"" FROM ""object"" INNER JOIN [...]  WHERE (""name"" != ""photo__name"") ``

возможно из-за join придётся указать полные названия таблиц, например

where=['""object"".""name"" != ""photo"".""photo__name""']

Последние

Похожие