2013-03-07 24 views
5

Şablon özelleştirmelerini işlemek için korumalı bir Jinja2 ortamı kullanmaya çalışıyorum. Bir DictLoader ve FunctionLoader ikisini de kullanarak çalıştı, ancak benzer sorunlar yaşamaya devam tutmak ettikJinja2'de FunctionLoader ile makroları/diğer şablonları nasıl ekleyebilirim?

... Şimdi FunctionLoader ile çoğunlukla endişe ediyorum.

Başka bir şablona (makro içeren) include veya import'a erişemiyorum. FuctionLoader'ın belirtilen "load" işlevi, başvurulan şablonlar için hiçbir zaman çağrılmaz. ,

  • sadece 'dahil' temel 'ithal' kullanarak yükleyici vurmak ve olacak bir ithalat bekliyor sözdizimi
  • bağlam içine yükleyici geçen bu olabilir eğer görme:

    hiçbir şans ile denedim Ayrıca ben unuttum hepsi, daha

  • birkaç şey çekmek ümit ederek bağlam içine şablonlar dicti geçen bu şekilde
  • çekmek

Eminim bunu desteklemenin bir yolu olmalı - birisi bana doğru yönde işaret edebilir mi?

cevap

15

İçe aktarma sözdizimi, alıntı dizeleri kullanmalıdır.

Kötü:

{% import utils %} 
{% import utils.macros as macros %} 
{% from utils.macros import macro_1 , macro_2 %} 

iyi:

{% import "utils" as utils %} 
{% import "utils.macros" as macros %} 
{% from "utils.macros" import macro_1 , macro_2 %} 

alıntı dize FunctionLoader geçirilen veya bir yan not olarak DictLoader

+3

ile anahtar olarak kullanılır: Bu davranış değildir resmi belgelerde sözü geçenler. –

İlgili konular