我使用这种模式:
class PersonAdmin(admin.ModelAdmin):
readonly_fields = ('address_report',)
def address_report(self, instance):
return format_html(...)
现在,我想在Python方法address_report()
中使用自定义模板标签。
调用它的最好方法是什么?
我试图直接调用我的templatetag,但这只会返回一个字典,而不是html。
答案 0 :(得分:3)
我认为您必须从字符串创建模板。这样,您可以使用任何所需的模板标签或变量。
示例:
from django.template import Template, Context
def address_report(...):
# create template
t = Template("""
{% load custom_tag_module %}
<p>
Hello, {{ name }}! <br>
{% custom_tag %}
</p>
""")
# create context
c = Context({'name': 'World'})
# render template, mark safe and return
return mark_safe(t.render(c))