Python Django查询不同的值可以工作,但我不能使用查询结果
我有一个表列,其中一些值是双写或三写的。我想有一个明确的问题 我试过了Python Django查询不同的值可以工作,但我不能使用查询结果,python,django,django-views,distinct,django-queryset,Python,Django,Django Views,Distinct,Django Queryset,我有一个表列,其中一些值是双写或三写的。我想有一个明确的问题 我试过了 staff = Staff.objects.all().values('person').distinct() for k in staff: j = k.person print j,k 我得到k.person的“dict对象没有作为person的属性” 我得到k,结果是 {'person': 778L} {'person': 779L} {'person': 780L} {'person': 781
staff = Staff.objects.all().values('person').distinct()
for k in staff:
j = k.person
print j,k
我得到k.person的“dict对象没有作为person的属性”
我得到k,结果是
{'person': 778L}
{'person': 779L}
{'person': 780L}
{'person': 781L}
{'person': 782L}`
您知道如何获取person值吗?对于
distinct
来说没有问题,但是对于values()
<代码>值()。要从dict获取属性,可以使用dict['attr\u name']
所以你可以试试这个:
staff = Staff.objects.all().values('person').distinct()
for k in staff:
j = k['person']
print j,k
@罗汉是对的
dict['attr_name']
会给你想要的
staff = Staff.objects.all().values('person').distinct()
print staff.query
#it returns:
#SELECT DISTINCT "staff"."person" FROM "staff"
除此之外,如果您使用此功能,您可以通过以下结构实现此功能:
staff = Staff.objects.all().distinct('person')
for pr in staff:
print pr['person']
“k”是k['person']的一个dict.Access,现在有了
值列表()
。#如果field\u name是外键,那么使用field\u name.pkHi Sayeem!欢迎来到堆栈溢出。请务必阅读指南-不要只提供代码作为答案,请告诉我们一些您的解决方案!工作可能很好,但它仍将加载所有内容。它没有经过优化。因此,不要将其用于大型数据集。
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