Próbuję zrobić coś takiego:Jak mogę pośrednio wywołać makro w szablonie Jinja2?
{% macro obj_type_1 %}
stuff
{% endmacro %}
{% macro obj_type_2 %}
stuff
{% endmacro %}
{{ (obj|get_type)(obj) }}
W tym przykładzie get_type
jest filtrem, który zwróciłby obj_type_1
lub obj_type_2
- czyli nazwa makra wezwać obj
. Nie chcę oznaczyć obj
z danymi wyjściowymi konfiguracji, ponieważ teraz obj
jest używany w kilku szablonach jako dane strukturalne, które mają być renderowane z różnymi znacznikami w zależności od kontekstu.
Wiem, że składnia tutaj jest nieco torturowana, ale myślę, że to dlatego, że to, co chcę zrobić, nie jest natychmiast możliwe w szablonach Jinja. Próbuję zastąpić wielką cholerę tego/elif/else crap w kodzie generowania konfiguracji za pomocą szablonów, ale ten bit wydaje się być punktem krytycznym.
Więc w zasadzie szuka sposobu na 'eval()' w Jinja2? – Blender
Blisko; Chcę wywołać makro według nazwy. –