Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django查询不同的值可以工作,但我不能使用查询结果_Python_Django_Django Views_Distinct_Django Queryset - Fatal编程技术网

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