2
2
import logging
3
3
4
4
from django .db .models import Q
5
- from django .utils .html import escape
5
+ from django .utils .html import escape , format_html
6
6
7
7
from .mixins import JSONResponseView
8
8
@@ -132,7 +132,7 @@ def _column_value(obj, key):
132
132
133
133
return getattr (obj , key , None )
134
134
135
- def render_column (self , row , column ):
135
+ def _render_column (self , row , column ):
136
136
""" Renders a column on a row. column can be given in a module notation eg. document.invoice.type
137
137
"""
138
138
# try to find rightmost object
@@ -154,9 +154,15 @@ def render_column(self, row, column):
154
154
155
155
if self .escape_values :
156
156
value = escape (value )
157
-
158
- if value and hasattr (obj , 'get_absolute_url' ):
159
- return '<a href="%s">%s</a>' % (obj .get_absolute_url (), value )
157
+
158
+ return value
159
+
160
+ def render_column (self , row , column ):
161
+ """ Renders a column on a row. column can be given in a module notation eg. document.invoice.type
162
+ """
163
+ value = self ._render_column (row , column )
164
+ if value and hasattr (row , 'get_absolute_url' ):
165
+ return format_html ('<a href="{}">{}</a>' , row .get_absolute_url (), value )
160
166
return value
161
167
162
168
def ordering (self , qs ):
0 commit comments