Django Query distinct values works but i cant use the query result

@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']

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