Django: экранирование Html в поле администратора 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
Я посмотрел на этот ответ. Но не похоже на работу. Я думаю, allow_tags был устарел . Какие у меня варианты?
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
.Это можно написать более питонски, конечно:
return format_html('<a href="/reports/{}">link</a>', obj.filepath)