Python колба Jinja2 реализовать параметры внутри MACRO - PullRequest
0 голосов
/ 17 декабря 2018

Следуя этому руководству , я хочу реализовать свои параметры 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-код, который я получил:

enter image description here

1 Ответ

0 голосов
/ 17 декабря 2018

Я бы попытался сделать следующее (снятие внутренних скобок должно решить эту проблему):

{{ buttons_utils.navigation_button_test(btn_name='name', placeholder=" button_params.placeholder" ) }}

Джинджа автоматически знает, как реализовать объекты внутри, поэтому вы должны использовать только открывающие скобки {{и закрывающие}}

...