2016-08-30 41 views
0

我有一個Python數組:龍捲風模板設置值欄

a=["a","b","c","d","e","f"] 

我通過這是龍捲風的值呈現:

self.render("index.html", a=a) 

在我的HTML我有以下幾點:

<input type="hidden" id="xxx" value=" 
    {% for c in a %} 
    {{c}} 
    {% end %} 
    "/> 

這給我以下凌亂的輸出:

<input type="hidden" id="xxx" value=" 

a 

b 

c 

d 

e 

f 

"/> 

我試過使用{{c.strip()}}但是做了同樣的事情。我也嘗試在JavaScript中混合,但是在渲染填充值字段後JavaScript沒有執行。我想要的HTML是正常的,即value="a b c d e f"

有誰知道我該如何實現這一目標?

回答

2

嘗試龍捲風的filter_whitespace功能,在4.3版本新。

{% whitespace oneline %} 
    <input type="hidden" id="xxx" value="{% for c in a %} 
    {{c}} 
    {% end %}"/> 
    {% whitespace all %} 

仍然會有一些額外的空間,但它更接近你想要的。

+0

謝謝傑西不知道這件事! –

1

只需加入後端本身的列表。

self.render("index.html", a=' '.join(a)) 

和使用,

<input type="hidden" id="xxx" value="{{ a }}" /> 

模板

+0

不是一個壞的方法謝謝。我想知道是否有模板的方式來做到這一點,雖然 –

+0

@xenophon或創建一個自定義的過濾器,以空間加入列表項。請參閱http://stackoverflow.com/a/13003440/3297613 –

0

同爲@Avinash回答,只在模板:

<input type="hidden" id="xxx" value="{{ ' '.join(a) }}" /> 

龍捲風模板,不像一些其他模板引擎,如Django的或神社,允許在模板中的任意Python表達式。