2012-06-27 71 views
3

我用的是包含另一個jinja2模板的jinja2模板,名爲buttons.html。url_for裏面包含jinja2

按鈕模板的父母看起來是這樣的:

{% include "{{ url_for('.buttons') }}" %} 

藍圖代碼如下所示:

@whatever_blueprint.route('/whatever/buttons.html', methods=['GET']) 
def buttons(): 
    return render_template('/whatever/buttons.html') 

這讓我拿的事實,即神社將解決。帶前綴的url_for當前藍圖上下文的路徑,從而爲我提供專門用於渲染此藍圖的按鈕。在其他情況下,我使用.prefix方法,但在此上下文中未嘗試嵌套的url_for。不幸的是,我似乎無法得到這個工作,大概是因爲嵌套的{%{{}}%}。

這可能嗎?

+0

什麼是點('.buttons')? – roy

回答

2

不幸的是(或者幸運的是,大多數用例會相當醜陋),你不能包含URL而只包含模板。

你想要的是{{ buttons() }}buttons作爲buttons函數(或{{ buttons }}render_template()buttons=buttons())傳遞給render_template()電話或通過全球範圍內的模板可用。