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

24👍

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

5👍

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

-1👍

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:
            copy1.append(data.field_name)
            copy2.append(data)


    query = copy2
👤Sayeem

Leave a comment