13. Как найти значения разных полей из набора запросов?¶
Вы хотите найти пользователей, чьи имена не повторялись. Вы можете сделать это следующим образом
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
.