2015-12-02 87 views
0

我想從Pillar中獲取一些變量並傳遞一個變量作爲從Pillar中獲取的關鍵字的名稱,但似乎缺少某些東西。我嘗試了幾個組合,但似乎沒有任何工作。Jinja2中的塊內的塊

第一行 - 我得到key - house_name,然後在第二行中,我想動態地從Pillar中獲取該鍵的相應值。關鍵的部分是靜態的(房屋:列表)和部分動態(house_name)

{% for house_name in event_data.house_list|list %} 
{% set home_def = salt['pillar.get']('homes:list:{{ house_name }}') %} 
... 
{% endfor %} 

當我硬編碼在第二行house_name - 東西很好地工作 - 這意味着在命名空間中的關鍵的渲染什麼是錯的。有幾個組合,我試過,但沒有第二行的工作:

{% set home_def = salt['pillar.get']('homes:list:'{{ house_name }}) %} 
{% set home_def = salt['pillar.get']("homes:list:{{ house_name }}") %} 

回答

1

你不需要使用{{}}括號set聲明

{% for house_name in event_data.house_list|list %} 
{% set home_def = salt['pillar.get']('homes:list:{}'.format(house_name)) %} 
... 
{% endfor %} 
+0

這工作就像一個魅力,感謝一噸。我意識到我缺少一些基本的語法文檔 - 任何指針? –

+1

在Jinja2中,雙花括號用作打印語句。如果你訪問標籤內的變量,不要把大括號放在它們周圍。請參閱文檔中的變量部分:http://jinja.pocoo.org/docs/dev/templates/#variables –

+0

如果有兩個動態值類似home,它將如何工作:list:{}:{}其中兩個括號是我需要把我的兩個變量 –