我需要在管理界面网格列中生成外部链接,但它们显示为html代码:
<a href="http://www.site.com/">site</a>
管理界面将我的链接翻译为html-entities,并且它们不显示为正确的链接。 是否可以在那里显示外部链接,而不是HTML代码?
我认为 list_display_links 不能用于此目的。
谢谢!
答案 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,
)