2016-06-28 9 views
3

変数を1行に入れるjinja2テンプレートを作成できますか?これに似た何かが、結果に2行あるのではなく、カンマで区切られています。Jinja2テンプレート変数を1行に変更

テンプレート:

{% for host in groups['tag_Function_logdb'] %} 
elasticsearch_discovery_zen_ping_unicast_hosts = {{ host }}:9300 
{% endfor %} 

結果:

elasticsearch_discovery_zen_ping_unicast_hosts = 1.1.1.1:9300 
elasticsearch_discovery_zen_ping_unicast_hosts = 2.2.2.2:9300 

望ましい結果:

elasticsearch_discovery_zen_ping_unicast_hosts = 1.1.1.1:9300,2.2.2.2:9300 

編集、この作品:

elasticsearch_discovery_zen_ping_unicast_hosts = {% for host in groups['tag_Function_logdb'] %} 
{{ host }}:9300 
{%- if loop.first %},{% endif %} 
{% endfor %} 
+1

の可能性のある重複した[どのように神社のPythonのテンプレートで出力カンマ区切りのリストをします?](http://stackoverflow.com/questions/11974318/how-to-output-a-comma-delimited-list- in-jinja-python-template) – nelsonda

答えて

1

私はループの前に望んでいた指示を入れた後、loop.first-を使用してこの作業を取得することができましたカンマで区切られたリストを適切に整形する空白コントロール。

elasticsearch_discovery_zen_ping_unicast_hosts = {% for host in groups['tag_Function_logdb'] %} 
{{ host }}:9300 
{%- if loop.first %},{% endif %} 
{% endfor %} 
0

は、ここであなたがそれを行うことができます方法は次のとおりです。

elasticsearch_discovery_zen_ping_unicast_hosts =   

{% for host in groups['tag_Function_logdb'] %} 

    {{ host }}:9300 

    {% if not groups['tag_Function_logdb'].last %} 
, 
    {% endif %} 

{% endfor %} 
+0

ありがとう、進歩しています。 'elasticsearch_discovery_zen_ping_unicast_hosts =  'は読み込まれず、代わりにテキストとして表示されます。どういうわけかそれはループの一部にあるべきですか? – tweeks200

1

ここで私にとってうまくいきました。私はtweeks200のソリューションが2つのループでしか動作しないことを発見しました。これはループの数に関係なく機能します。助けを求める皆様に感謝します。

``` 
elasticsearch_discovery_zen_ping_unicast_hosts={% for host in groups['tag_Function_logdb'] %} 
{{ host }}:9300 
{%- if not loop.last %},{% endif %} 
{% endfor %} 
``` 
関連する問題