2014-04-21 12 views
21

Çalıştığım bir Jinja şablonunda büyük harfe bir string dönüştürmeyi deniyorum. template documentation yılındaJinja2 dizgisi büyük/küçük harfe dönüştürmek nasıl?

, okudum:

{% if student.departament == "Academy" %} 
    Academy 
{% elif upper(student.department) != "MATHS DEPARTMENT" %} 
    Maths department 
{% endif %} 

Ama bu hatayı alıyorum:

upper(s) 
    Convert a value to uppercase. 

Yani bu kodu yazdım Yani

UndefinedError: 'upper' is undefined 

, nasıl yapmak Jinja2 bir dize büyük harf dönüştürmek?

{% elif student.department|upper != "MATHS DEPARTMENT" %} 
    Maths department 
{% endif %} 

veya str.upper() method kullanabilirsiniz:

+0

gibi Filter, küçük harf için hatadır: 'jinja2.exceptions.UndefinedError: 'alt' – Jonathan

cevap

40

Filtreler |filter syntax kullanılır

{% elif student.department.upper() != "MATHS DEPARTMENT" %} 
    Maths department 
{% endif %} 

Jinja sözdizimi gibi Python- değil, gerçek Python olduğunu. :-)

2

Ve kullanabilirsiniz: Google için bu

{% filter upper %} 
    UPPERCASE 
{% endfilter %} 
+0

undefined' olduğu Fakat bu izin vermez sonucu karşılaştırırsınız; sadece * * sonucu * enterpolasyon yapar. –

+0

evet eminim sadece enterpolasyon yapar –