que estoy tratando de hacer algo como esto:¿Cómo puedo llamar indirectamente una macro en una plantilla Jinja2?
{% macro obj_type_1 %}
stuff
{% endmacro %}
{% macro obj_type_2 %}
stuff
{% endmacro %}
{{ (obj|get_type)(obj) }}
En este ejemplo, get_type
es un filtro que devolvería obj_type_1
o obj_type_2
- es decir, el nombre de la macro para pedir obj
. No quiero marcar obj
con salida de configuración porque ahora obj
se usa en varias plantillas como datos estructurales, para representar con diferentes marcas dependiendo del contexto.
Sé que la sintaxis aquí es un poco torturada, pero creo que es porque lo que quiero hacer no es inmediatamente posible en las plantillas de Jinja. Estoy tratando de reemplazar una gran mierda de if/elif/else en algún código de generación de config con plantillas, pero este bit parece ser un punto de fricción.
Así Básicamente, se está buscando una manera de 'eval()' en Jinja2? – Blender
Cerca de; Quiero llamar a una macro por nombre. –