Как мога да включа макроси / други шаблони с FunctionLoader в Jinja2?

Опитвам се да използвам среда Jinja2 в пясъчна среда, за да се справя с персонализирането на шаблона.

Опитах да използвам и DictLoader, и FunctionLoader, но продължавам да се сблъсквам с подобни проблеми... Сега съм най-вече загрижен за FunctionLoader.

Не мога да управлявам include или import друг шаблон (който съдържа макроси). Посочената от FuctionLoader функция "load" никога не се извиква за посочените шаблони.

Опитах без успех:

  • самото очакване на импортиране ще удари товарача, използвайки основен синтаксис „импортиране“ и „включване“.
  • предаване на товарача в контекста, като се види дали може да се изтегли по този начин
  • предаване на диктовка от шаблони в контекста, като също се надява, че може да се включи
  • още няколко неща, всички от които забравих

Сигурен съм, че трябва да има начин да се поддържа това - може ли някой да ме насочи в правилната посока?


person Jonathan Vanasco    schedule 07.03.2013    source източник


Отговори (1)


Синтаксисът за импортиране трябва да използва низове в кавички.

лошо:

{% import utils %}
{% import utils.macros as macros %}
{% from utils.macros import macro_1 , macro_2 %}

Добре:

{% import "utils" as utils %}
{% import "utils.macros" as macros %}
{% from "utils.macros" import macro_1 , macro_2 %}

Цитираният низ се предава в FunctionLoader или се използва като ключ с DictLoader

person Jonathan Vanasco    schedule 12.03.2013
comment
като странична бележка: това поведение изобщо не се споменава в официалните документи. - person Jonathan Vanasco; 12.03.2013