在this guide之后,我想在宏中实现BACKEND参数。
例如:
我的宏称为infrastructure/buttons_utils.html
:
{% macro navigation_button_test(btn_name, placeholder) -%}
<input type="submit"
class="btn btn-primary btn-lg"
value="{{ placeholder }}"
id="{{ btn_name }} ">
{%- endmacro %}
然后我渲染一个HTML模板,其中包含一个名为top_buttons_list
的列表,这是一个字典列表。我的代码是:
{% import 'infrastructure/buttons_utils.html' as buttons_utils %}
<div class="vmiddle_wrapper">
{% for button in top_buttons_list %}
{% set button_params = button.button_params %}
<div> PLACEHOLDER TEST: {{ button_params.placeholder }} </div>
<div> {{ buttons_utils.navigation_button_test(btn_name='name', placeholder="{{ button_params.placeholder }}" ) }} </div>
{% endfor %}
</div>
除了屏幕上显示带有正确PLACEHOLDER的按钮外,我实际上是在按钮上显示以下字符串:"{{ button_params.placeholder }}"
这是我得到的HTML:
答案 0 :(得分:1)
我将尝试执行以下操作(卸下内括号应可解决此问题):
{{ buttons_utils.navigation_button_test(btn_name='name', placeholder=" button_params.placeholder" ) }}
Jinja自动知道如何在内部实现对象,这就是为什么您只应使用左括号{{和右括号}}