2013-02-27 17 views
6

W silniku szablonów Jinja2 (stosując kolbę), chcę osiągnąć coś takiego:Parametryzowane wielokrotnego użytku bloki z Jinja2 (kolba) silnika szablonów

{% reusable_block avatar(user) %} 
    <img src='{{ user.avatar }}' title='{{ user.name }}'/> 
{% reusable_block %} 

a następnie w różnych miejscach:

{% for u in users %} 
    {% call avatar(u) %} 
{% endfor %} 

Jednak nie mogę znaleźć takiej funkcji (skomponowałem reusable_blocks dla tego pytania) w dokumentacji Jinja. To, czego potrzebuję, to w zasadzie bloki wielokrotnego użytku, które mogą przyjmować parametry. Jakieś pomysły wiedzą, jak to zrobić z Jinja2?

Odpowiedz

11

Można używać makr.

{% macro input(name, value='', type='text', size=20) -%} 
    <input type="{{ type }}" name="{{ name }}" value="{{value|e }}" size="{{ size }}"> 
{%- endmacro %} 


<p>{{ input('username') }}</p> 
<p>{{ input('password', type='password') }}</p> 

Więcej dokumentacji here.

+0

Dzięki człowieku. Uratowałem dzień. –

Powiązane problemy