如何将 QuerySet 转换为 Django 中的集合?
how to convert a QuerySet to a set in django?
我有一个问题,
name_phonenum = person.objects.value_list('first_name','phone_num')
我想将查询集转换为一个集合。知道怎么做。
people = Person.objects.all()
people_list = []
for person in people:
people_list.append([person.first_name, person.phone_num])
people_set = set(people_list)
没有在 shell 中对此进行测试,但应该可以正常工作。
编辑:William 是正确的,他的回答要好得多。
你可以把它包裹在 set(…)
:
<strong>set(</strong>person.objects.value_list('first_name','phone_num')<strong>)</strong>
但是您可以让数据库使用 .distinct(…)
method [Django-doc]:
person.objects.value_list('first_name','phone_num')<strong>.distinct()</strong>
这将最大限度地减少从数据库到应用层的带宽。
我有一个问题,
name_phonenum = person.objects.value_list('first_name','phone_num')
我想将查询集转换为一个集合。知道怎么做。
people = Person.objects.all()
people_list = []
for person in people:
people_list.append([person.first_name, person.phone_num])
people_set = set(people_list)
没有在 shell 中对此进行测试,但应该可以正常工作。
编辑:William 是正确的,他的回答要好得多。
你可以把它包裹在 set(…)
:
<strong>set(</strong>person.objects.value_list('first_name','phone_num')<strong>)</strong>
但是您可以让数据库使用 .distinct(…)
method [Django-doc]:
person.objects.value_list('first_name','phone_num')<strong>.distinct()</strong>
这将最大限度地减少从数据库到应用层的带宽。