【问题标题】:Django : Escaping Html in Django Admin field?Django:在 Django Admin 字段中转义 Html?
【发布时间】:2017-08-05 12:45:44
【问题描述】:

我想在我的 Django 管理仪表板中有一个超链接。但是 Django 管理员正在转义 html。

admin.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。我有哪些选择?

【问题讨论】:

  • 你能给我看看代码吗..我想你可以覆盖模板..
  • @SancaKembang 添加到问题正文中

标签: python django django-admin


【解决方案1】:
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)

【讨论】:

  • 我在问题链接的答案中提到了这一点。我试过了,没有用。但现在它起作用了。谢谢。
猜你喜欢
  • 2011-04-18
  • 2022-01-25
  • 2022-10-05
  • 1970-01-01
  • 2011-02-10
  • 2021-08-19
  • 2017-09-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多