2015-01-02 15 views
28

Bir piton sözlük var şablonları.Kontrol

bir anahtar myProperty şablonumun içinde settings dict var ve eğer öyleyse bir işlem yapmaya olmadığını kontrol etmek istiyorum

:

{% if settings.hasKey(myProperty) %} 
    takeSomeAction(); 
{% endif %} 

kullanabileceğim hasKey eşdeğer nedir?

+0

Sadece şunu kontrol edin: gs [myproperty] yok: Bence bunun işe yarayacağını düşünüyorum. –

+0

veya settings.myproperty tanımlandıysa: –

cevap

13

Bu belirttiği

Mihai ve karelv gibi {% if settings.myProperty %}

+1

Can myProperty yukarıdaki yaklaşımda bir değişken olabilir mi? –

+4

Evet, sözlükteki bir anahtar. '' HasKey'' eşdeğerdir. Ve btw, hasKey onaylanmadı. Setting.myProperty var olduğunda, –

+11

yerine '' in'' işlevini kullanın, ancak sıfıra eşittir (tamsayı 0) ya da false değeri, bu eğer 'hasKey' için değilse. Bu, ihtiyacınız olduğu anlamına gelir: '' {% eğer ayarları%} '' myProperty ''' ' – karelv

66

çalışıyor, bu çalışır: Bir blabla içermiyor {% if item.blabla %} ve item kullanırsanız

{% if 'blabla' in item %} 
    ... 
{% endif %} 

Ben 'dict object' has no attribute 'blabla' almak anahtar

+2

Benim için aynı. Benim durumumda Ansible içinde Jinja2 kullanıyorum. – chesterbr