from django import template
from django.template import engines
from django.utils.html import format_html
register = template.Library()
@register.simple_tag
def external_link(link):
'''
Creates an anchor tag
'''
return format_html('<a target="_blank" href="%s"> Some External Link </a>' % (link))
link = '{% external_link https://stackoverflow.com %}'
template_context = '<div> {{ a_link }} </div>'
template = engines['django'].from_string(template_context)
template.render({
'a_link': link,
})
当前输出:u'<div> {% external_link https://stackoverflow.com %} </div>'
我需要的是:u'<div> <a target="_blank" href="https://stackoverflow.com"> Some External Link </a> </div>'
如何通过将模板代码保留在变量link
?
答案 0 :(得分:2)
问题是你传入的字符串要呈现为上下文变量,而不是作为你试图呈现的模板的一部分。
只需将标记作为模板字符串
的一部分包含在内template_context = '<div>{}</div>'.format(link)