如何在Django Admin Interface中显示外部链接?

时间:2009-04-09 09:57:49

标签: django django-admin

我需要在管理界面网格列中生成外部链接,但它们显示为html代码:

<a href="http://www.site.com/">site</a>

管理界面将我的链接翻译为html-entities,并且它们不显示为正确的链接。 是否可以在那里显示外部链接,而不是HTML代码?

我认为 list_display_links 不能用于此目的。

谢谢!

2 个答案:

答案 0 :(得分:9)

进一步了解http://docs.djangoproject.com/en/dev/ref/contrib/admin/#list-display

def colored_name(self):
    return '<span style="color: #%s;">%s %s</span>' % (self.color_code, self.first_name, self.last_name)
colored_name.allow_tags = True

答案 1 :(得分:2)

在Django 2.0中执行此操作的正确方法是将字符串标记为安全的HTML。更好的是使用format_html(),这样Django仍然可以逃避参数。

from django.utils.html import format_html

def my_link_field(self):
    return format_html(
            '<a href="{0}">{1}</a>',
            self.my_external_url,
            self.my_link_display_name,
        )