13. How to find distinct field values from queryset?

../_images/usertable2.png

You want to find users whose names have not been repeated. You can do this like this

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])

This is different from User.objects.distinct("first_name").all(), which will pull up the first record when it encounters a distinct first_name.

Back to Top