2012-06-27 54 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()电话或通过全球范围内的模板可用。