[英]django create list from a queryset list
我有來自Django查詢集的對象列表,例如
my_list = MyObject.objects.filter(variable=something)
MyObject具有一個稱為year的字段,該字段設置為特定年份,例如2005、2007、2009
我想使用my_list並創建一個年份字典,其中包含該年份的所有MyObject值。 例如
my_dict['2005'] = list of objects from my_list which match year = 2005
my_dict['2006'] = list of objects from my_list which match year = 2006
my_dict['2007'] = list of objects from my_list which match year = 2007
my_dict['2008'] = list of objects from my_list which match year = 2008
誰能告訴我這樣做的最好方法。 我已經對第一位進行了排序,例如獲取my_list。 我只需要將它分解成幾年。 我嘗試自己編寫它,但是由於大量的for循環和db查詢,它變得非常低效
謝謝
import collections
mydict = collections.defaultdict(list)
for obj in my_list:
mydict[obj.year].append(obj)
(不要將查詢集稱為“ my_list”,它實際上不是列表,而是查詢集。將其稱為“ my_objects”。)
my_dict = {}
for obj in my_objects:
my_dict.setdefault(obj.year, []).append(obj)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.