diff --git a/rest_framework/templates/rest_framework/admin/list_value.html b/rest_framework/templates/rest_framework/admin/list_value.html index cff15635e..267bbaa39 100644 --- a/rest_framework/templates/rest_framework/admin/list_value.html +++ b/rest_framework/templates/rest_framework/admin/list_value.html @@ -1,5 +1,5 @@ {% load rest_framework %} - -{% for item in value %}{% if not forloop.first%}, {% endif %}{{item.name}}{% endfor %} diff --git a/rest_framework/templates/rest_framework/admin/simple_list_value.html b/rest_framework/templates/rest_framework/admin/simple_list_value.html index 2dcaeb62f..e378a36b6 100644 --- a/rest_framework/templates/rest_framework/admin/simple_list_value.html +++ b/rest_framework/templates/rest_framework/admin/simple_list_value.html @@ -1 +1,2 @@ -{% for item in value %}{% if not forloop.first%},{% endif %} {% if item.is_hyperlink %}{{item.name}}{% else %}{{ item }}{% endif %}{% endfor %} +{% load rest_framework %} +{% for item in value %}{% if not forloop.first%},{% endif %} {{item|format_value}}{% endfor %} diff --git a/rest_framework/templatetags/rest_framework.py b/rest_framework/templatetags/rest_framework.py index 10ad658bd..d8b906eb7 100644 --- a/rest_framework/templatetags/rest_framework.py +++ b/rest_framework/templatetags/rest_framework.py @@ -108,8 +108,10 @@ def add_class(value, css_class): @register.filter def format_value(value): + if getattr(value, 'is_hyperlink', False): + return mark_safe('%s' % (value, escape(value.name))) if isinstance(value, (int, float, decimal.Decimal, bool, type(None))): - return mark_safe('%s' % value) + return mark_safe('%s' % escape(value)) elif isinstance(value, list): if any([isinstance(item, (list, dict)) for item in value]): template = loader.get_template('rest_framework/admin/list_value.html')