From 61b45dff6be3a2c85adac73acf5fe0de71f9ecda Mon Sep 17 00:00:00 2001 From: Baptiste Mispelon Date: Fri, 26 Aug 2016 11:39:06 +0200 Subject: Fixed #27126 -- Made {% regroup %} return a namedtuple to ease unpacking. --- django/template/defaulttags.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'django') diff --git a/django/template/defaulttags.py b/django/template/defaulttags.py index 7372c9414d..bb6e8bf4c2 100644 --- a/django/template/defaulttags.py +++ b/django/template/defaulttags.py @@ -4,6 +4,7 @@ from __future__ import unicode_literals import re import sys import warnings +from collections import namedtuple from datetime import datetime from itertools import cycle as itertools_cycle, groupby @@ -335,6 +336,9 @@ class LoremNode(Node): return '\n\n'.join(paras) +GroupedResult = namedtuple('GroupedResult', ['grouper', 'list']) + + class RegroupNode(Node): def __init__(self, target, expression, var_name): self.target, self.expression = target, expression @@ -355,7 +359,7 @@ class RegroupNode(Node): # List of dictionaries in the format: # {'grouper': 'key', 'list': [list of contents]}. context[self.var_name] = [ - {'grouper': key, 'list': list(val)} + GroupedResult(grouper=key, list=list(val)) for key, val in groupby(obj_list, lambda obj: self.resolve_expression(obj, context)) ] -- cgit v1.3