- {% for key, value in row.items %}
+ {% for key, value in row|items %}
{% if key in columns %}
{{ value|format_value }}
diff --git a/rest_framework/templatetags/rest_framework.py b/rest_framework/templatetags/rest_framework.py
index 62f66de5f..decf9cdae 100644
--- a/rest_framework/templatetags/rest_framework.py
+++ b/rest_framework/templatetags/rest_framework.py
@@ -148,7 +148,7 @@ def format_value(value):
return template_render(template, context)
elif isinstance(value, dict):
template = loader.get_template('rest_framework/admin/dict_value.html')
- context = {'value': value.items()}
+ context = {'value': value}
return template_render(template, context)
elif isinstance(value, six.string_types):
if (
@@ -163,6 +163,12 @@ def format_value(value):
return six.text_type(value)
+@register.filter
+def items(value):
+ if hasattr(value, 'items'):
+ return value.items()
+
+
@register.filter
def add_nested_class(value):
if isinstance(value, dict):
diff --git a/tests/test_renderers.py b/tests/test_renderers.py
index 02b95d31f..12ac2dfc8 100644
--- a/tests/test_renderers.py
+++ b/tests/test_renderers.py
@@ -656,14 +656,13 @@ class AdminRendererTests(TestCase):
renderer_classes = (AdminRenderer, )
def get(self, request):
- return Response({'foo' : 'a string'})
+ return Response({'foo': 'a string'})
view = DummyView.as_view()
request = factory.get('/')
response = view(request)
response.render()
self.assertInHTML(' |