【发布时间】:2009-04-09 09:57:48
【问题描述】:
我需要在管理界面网格列中生成外部链接,但它们显示为 html 代码:
<a href="http://www.site.com/">site</a>
管理界面将我的链接翻译为 html 实体,但它们不会显示为正确的链接。 是否可以在那里显示外部链接,而不是 html 代码?
我认为 list_display_links 不适用于此目的。
谢谢!
【问题讨论】:
标签: django django-admin
我需要在管理界面网格列中生成外部链接,但它们显示为 html 代码:
<a href="http://www.site.com/">site</a>
管理界面将我的链接翻译为 html 实体,但它们不会显示为正确的链接。 是否可以在那里显示外部链接,而不是 html 代码?
我认为 list_display_links 不适用于此目的。
谢谢!
【问题讨论】:
标签: django django-admin
在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
【讨论】:
在 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,
)
【讨论】: