Skip to main content
 首页 » 编程设计

python之Django : Escaping Html in Django Admin field

2024年10月01日36kevingrace

我想在我的 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)