Tengo definidas algunas macros que se invocan desde varias plantillas.¿Cómo hacer una macro Jinja2 desde una vista invocable?
Por ejemplo, la página del producto tiene una sección de revisión que utiliza las macros definidas en 'helpers/review.jinja2'
para imprimir cada revisión. El archivo 'helpers/review.jinja2'
tiene estas dos macros:
{% macro render_review(request,review) -%}
{% macro render_review_comment(request,comment) -%}
Cuando alguien presente una nueva revisión, a través de AJAX, quiero devolver la revisión dictada con el fin de añadir el contenido a la sección de revisión.
En este momento, tengo una plantilla intermedia 'review/review.jinja2'
que tiene este aspecto:
{% import 'helpers/review.jinja2' as review_helper %}
{{ review_helper.render_review(request,review) }}
Esta plantilla se hace de la vista:
@view_config(route_name='review.add_review', renderer='review/review.jinja2')
def add_review(request):
return dict(review=my_new_review)
Pero espero que hay una mejor manera de hacerlo esta. Entonces, ¿es posible renderizar una macro definida en una plantilla?
Gracias
que acabo de hacer una búsqueda rápida a través de d Jinja2 ocs y no parece que haya ninguna manera de hacer esto. –