Ich versuche, so etwas zu tun:Wie kann ich indirekt ein Makro in einer Jinja2-Vorlage aufrufen?
{% macro obj_type_1 %}
stuff
{% endmacro %}
{% macro obj_type_2 %}
stuff
{% endmacro %}
{{ (obj|get_type)(obj) }}
In diesem Beispiel get_type
ein Filter, die obj_type_1
oder obj_type_2
zurückkehren würde - dh der Name des Makros rufen für obj
. Ich möchte nicht obj
mit Konfigurationsausgabe markieren, weil gerade obj
in mehreren Vorlagen als Strukturdaten verwendet wird, mit unterschiedlichen Markup je nach Kontext gerendert werden.
Ich weiß, die Syntax hier ist ein bisschen gequält, aber ich denke, das ist, weil das, was ich tun möchte, nicht sofort in Jinja Vorlagen möglich ist. Ich versuche, einen großen Schwalbe von if/elif/else Mist in einigen Config Generation Code mit Vorlagen zu ersetzen, aber dieses Bit scheint ein Knackpunkt zu sein.
Sie sind also im Grunde eine Art und Weise zu 'eval()' in Jinja2 suchen? – Blender
In der Nähe von; Ich möchte ein Makro namentlich aufrufen. –