[Solved]-Django Query distinct values works but i cant use the query result


Its not problem with distinct but with values(). values() gives you dict of values you requested. And to get attribute from dict you can use dict['attr_name'].

So you can try this:

staff = Staff.objects.all().values('person').distinct()
for k in staff:
    j = k['person']
    print j,k


@Rohan is right. dict['attr_name'] will give you what you want.

staff = Staff.objects.all().values('person').distinct()
print staff.query

#it returns:
#SELECT DISTINCT "staff"."person" FROM "staff"

beside this if you use this patch, you can achieve this as following structure:

staff = Staff.objects.all().distinct('person')
for pr in staff:
    print pr['person']


query = Entity.objects.filter(field=x).order_by('field').distinct('field_name')

distinct('field_name') not supported? you can do the following.


    query = Entity.objects.filter(field_name=value).order_by('field')

    copy1 = []

    copy2 = []
for data in query:
    if data.field_name not in copy1:

    query = copy2

Leave a comment