簡體   English   中英

Django從查詢集列表創建列表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM