diff --git a/django_journal/admin.py b/django_journal/admin.py
index 2eb11fc..638faec 100644
--- a/django_journal/admin.py
+++ b/django_journal/admin.py
@@ -2,7 +2,7 @@ from string import Formatter
import django.contrib.admin as admin
from django.contrib.contenttypes.models import ContentType
-from django.utils.html import escape
+from django.utils.html import format_html, escape, mark_safe
from django.db import models
from django.utils.encoding import force_text
from django.utils.translation import ugettext_lazy as _
@@ -91,31 +91,28 @@ class JournalAdmin(admin.ModelAdmin):
def _tag(self, entry):
name = entry.tag.name.replace(u'-', u'\u2011')
- res = u'{1}'.format(
+ res = format_html('{1}',
escape(entry.tag.id), escape(name))
return res
- _tag.allow_tags = True
_tag.short_description = _('tag')
def ip(self, entry):
'''Search and return any associated stringdata whose tag is "ip"'''
for stringdata in entry.stringdata_set.all():
if stringdata.tag.name == 'ip':
- return u'{ip}'.format(
+ return format_html('{ip}',
tag_id=stringdata.tag.id, ip=stringdata.content)
return _('None')
ip.short_description = _('IP')
- ip.allow_tags = True
def user(self, entry):
'''Search and return any associated objectdata whose tag is "user"'''
for objectdata in entry.objectdata_set.all():
if objectdata.tag.name == 'user':
- return self.object_filter_link(objectdata) + \
- self.object_link(objectdata)
+ return format_html(self.object_filter_link(objectdata) + \
+ self.object_link(objectdata))
return _('None')
- user.allow_tags = True
user.short_description = _('User')
def object_filter_link(self, objectdata):
@@ -146,16 +143,14 @@ class JournalAdmin(admin.ModelAdmin):
ctx = entry.message_context()
formatter = ModelAdminFormatter(model_admin=self, filter_link=False)
message = formatter.format(escape(entry.template.content), **ctx)
- return u'%s' % message
- message_for_change.allow_tags = True
+ return format_html('{}', mark_safe(message))
message_for_change.short_description = _('Message')
def message_for_list(self, entry):
ctx = entry.message_context()
formatter = ModelAdminFormatter(model_admin=self)
message = formatter.format(entry.template.content, **ctx)
- return u'{0}'.format(message)
- message_for_list.allow_tags = True
+ return format_html('{}', mark_safe(message))
message_for_list.short_description = _('Message')
message_for_list.admin_order_field = 'message'