Страницы

Поиск по вопросам

пятница, 27 декабря 2019 г.

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

#python #orm #django


Добрый день, имеется queryset, нужно из него удалить дубликаты:
example = models.Object.objects.values('name', 'photo__name').distinct()
имеем джоин, в результате нужно получить чтобы name и photo__name не имели одинаковых
значений, как это реализовать используя Django ORM ? Cпасибо!    


Ответы

Ответ 1



Есть решение в лоб 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"']

Комментариев нет:

Отправить комментарий