2011-06-08 52 views
25

對於我這樣工作的:如何在Django模板變量上應用多個過濾器?

{{game.description |安全}}

但這種失敗:

{{ game.description|safe|slice:"65" }} 

有沒有上應用兩個或多個過濾器的方式Django模板中的變量?

+1

這應該活像ķ。例如,'{{var | safe | escape}}'適用於文檔。你確切的錯誤是什麼?爲什麼你的切片'65'? – 2011-06-08 15:37:48

+0

當我嘗試第二個時沒有出現。它是65,因爲如果遊戲描述對於容器div太長。 – Tommy 2011-06-08 15:51:05

+1

只是切換過濾器的順序。我在下面的答案更詳細。 – 2011-06-08 18:43:28

回答

0

這可能工作:

{% filter force_escape|lower %} 
    This text will be HTML-escaped, and will appear in all lowercase. 
{% endfilter %} 

參考:Built-in tag reference, filter

+0

儘管如此,他的榜樣應該如此。 – 2011-06-08 15:39:06

6

是描述一個數組還是一個字符串?

如果它是一個字符串,你可能想嘗試truncatewords(或truncatewords_html如果描述可以包含HTML),

{{ game.description|safe|truncatewords:65 }} 

參考:Built-in filter reference, truncatewords

(我是新來的Django,所以我道歉,如果片適用於字符串。)

26

雖然這是相當近時OP張貼的問題,但對於可能需要的信息的其他人來說,這似乎工作很適合我:

可以重寫

{{ game.description|safe|slice:"65" }} 

{% with description=game.description|safe %} 
{{description|slice:"65"}} 
{% endwith %} 
相關問題