在views.py Django中渲染检索到的对象的字典

时间:2017-02-18 06:03:55

标签: python dictionary django-views

我已编写代码来检索某些对象,并按日期对它们进行了排序。

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

我想创建一个字典,以便'键'是对象的日期字段的年份值,以及'值'是该年下的所有对象的列表。有什么办法可以实现吗?

提前感谢您的帮助。

1 个答案:

答案 0 :(得分: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)