I have a table column which some values are double or triple written. I want to have a distinct query.
I tried
staff = Staff.objects.all().values('person').distinct()
for k in staff:
j = k.person
print j,k
I get "dict object has not attribute as person" for k.person
And I get k gives me a result like
{'person': 778L}
{'person': 779L}
{'person': 780L}
{'person': 781L}
{'person': 782L}`
Do you know how can I get the person value?
@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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With