13. Как найти значения разных полей из набора запросов?

../_images/usertable2.png

Вы хотите найти пользователей, чьи имена не повторялись. Вы можете сделать это следующим образом

distinct = User.objects.values(
    'first_name'
).annotate(
    name_count=Count('first_name')
).filter(name_count=1)
records = User.objects.filter(first_name__in=[item['first_name'] for item in distinct])

Это отличается от User.objects.distinct("first_name").all(), который подтягивает первую запись, когда встречает отчетливую first_name.

Вернуться на верх