2017-02-18 48 views
0

我已經編寫了代碼來檢索一些對象並按日期排序。在views.py中呈現檢索到的對象字典Django

def updates(request): 
     updates = Update.objects.order_by('-update_date') 
     context = { 
     'updates' : updates 
     } 
    return render(request, 'main/update.html', context) 

我想創建一個字典,使得「鑰匙」是對象的日期字段的年份值,而「價值」是這一年來下的所有對象的列表。有什麼辦法可以實現這個嗎?

在此先感謝您的幫助。

回答

0

你可以嘗試使用groupby來完成這項工作。

from itertools import groupby 

def updates(request): 
    data = {} 
    updates = Update.objects.order_by('-update_date') 
    sorted_updates = sorted(updates, key=lambda item: item.update_date.strftime('%Y')) 
    for year, results in groupby(sorted_results, lambda item: item.created_on.strftime('%Y')): 
     data[year] = list(results) 
    context = {'updates': data} 
    return render(request, 'main/update.html', context) 
相關問題