gpt4 book ai didi

python - 在 Django 中创建查询集列表的最佳方法是什么?

转载 作者:太空宇宙 更新时间:2023-11-04 09:16:19 26 4
gpt4 key购买 nike

我有一个模型类“Place”,它有一个“state”字段,我想获得一个按数据库中所有可用的不同状态分组的查询集列表。

我目前正在这样做:

place_list = []
places = Place.objects.distinct('state')
[place_list.append( Place.objects.filter(state=p.state) ) for p in places]

有没有更好的聚合命令可以用来优化它?最好的方法是什么?

~ 使用 Python 2.6、Django 1.3.1

最佳答案

from collections import defaultdict

places_by_state = defaultdict(list)
for place in Place.objects.all():
places_by_state[place.state].append(place)
list_of_places_by_state = places_by_state.values()

这只会访问数据库一次,而不是像原始版本那样每个状态访问一次(假设您使用了所有结果),但您最终会得到一个列表列表而不是查询集列表。

关于python - 在 Django 中创建查询集列表的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9027592/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com