我想在我的 Django 管理仪表板中有一个超链接。但是 Django 管理员正在转义 html。
管理员.py
@admin.register(OrderReport)
class OrderReportAdmin(admin.ModelAdmin):
readonly_fields = ('show_url', )
list_display = ('__str__', 'show_url', )
def show_url(self, obj):
if obj.filepath:
return "<a href='/reports/"+obj.filepath+"'>link</a>"
return None
我看了this answer .但似乎不起作用。我认为 allow_tags 一直是 deprecated .我有哪些选择?
请您参考如下方法:
from django.utils.html import format_html
def show_url(self, obj):
if obj.filepath:
return format_html("<a href='/reports/"+obj.filepath+"'>link</a>")
return None
阅读此方法的更多信息 here .
这当然可以写得更pythonic:
return format_html('<a href="/reports/{}">link</a>', obj.filepath)
