Jinja: Правильное отслеживание идентификатора

Созданный на 13 мар. 2011  ·  3Комментарии  ·  Источник: pallets/jinja

В настоящее время отслеживание идентификаторов очень грубое и основано только на префиксе переменных. Идея состоит в том, чтобы сохранить некоторую уникальную переменную, переписывающуюся в уникальные идентификаторы, которые также можно было бы изменить.

Это должно сделать ненужным использование locals () во всем коде и исправить некоторые проблемы с идентификаторами за границами функций.

Самый полезный комментарий

Наконец-то это сделано.

Все 3 Комментарий

Откуда вы знаете, что эта проблема затронула вас? Вы получаете что-то вроде «Обнаружена несвязанная переменная l_SOMETHING».

От #pocoo только что:

magicbronson: hey mitsuhiko et al., trying to render a Jinja template in a Flask app and getting a very mysterious message: "global name 'l_config' is not defined"
magicbronson: l_config appears nowhere in my code or libraries'
mitsuhiko: magicbronson: that's the scoping bug that i will fix over this summer 
mitsuhiko: {% macro foo() %}{{ config }}{% for config in something_else %}{{config}}{% endfor %}{% endmacro %}
mitsuhiko: something like this triggers the bug currently
mitsuhiko: magicbronson: rename the variable inside of the macro to something else
mitsuhiko: {% set cfg = config %}
mitsuhiko: outside the macro
mitsuhiko: or something

Предложение Армина помогло решить эту проблему.

Наконец-то это сделано.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги