2016-12-01 55 views
0
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>'從變量解析Django模板語言代碼

我需要的是:u'<div> <a target="_blank" href="https://stackoverflow.com"> Some External Link </a> </div>'

如何通過保持模板代碼中的變量link實現這一目標?

+0

這是什麼標籤實現的一部分嗎?爲什麼不直接把鏈接直接放入? – Sayse

+0

我使用這個的上下文是邏輯是不同的,但我已經剝離了代碼,我面臨的問題... – NEB

+0

我真的不能嘗試它,但我想你需要''

{}
'.format(link)' – Sayse

回答

2

問題是,您傳遞的字符串將作爲上下文變量呈現,而不是您要呈現的模板的一部分。

只是簡單地包括標籤的模板字符串

template_context = '<div>{}</div>'.format(link)