summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorBaptiste Mispelon <bmispelon@gmail.com>2016-08-26 11:39:06 +0200
committerTim Graham <timograham@gmail.com>2016-08-26 16:59:21 -0400
commit61b45dff6be3a2c85adac73acf5fe0de71f9ecda (patch)
tree861f107b2ff26cee60e1970c320d6d929bc25767 /django
parent7968bb7fada503b79d8b0e8c92aa076d60c17241 (diff)
Fixed #27126 -- Made {% regroup %} return a namedtuple to ease unpacking.
Diffstat (limited to 'django')
-rw-r--r--django/template/defaulttags.py6
1 files changed, 5 insertions, 1 deletions
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))
]