2010-08-14 128 views
36

我想輸出項目列表上描述的前255個字符,並且正在尋找一種方法來獲取它。使用Django模板過濾器限制字符數

例如:我有一個包含300個左右字符的變量。

我這樣調用該變量,{{ my_variable|characterlimit:255 }}

,它將只返回變量的前255個字符。

如果這個標記不存在,我會簡單地創建它(並建議它進入Django),但我想確保它沒有花時間做這件事。謝謝!

回答

62

如果「my_variable」是一個字符串,則可以利用slice filter,該字符串將字符串視爲字符列表。如果是一組單詞,粗略的等值是truncatewords - 但這聽起來並不像您的需要。

truncatewords還在截斷結果的末尾添加省略號...

用法會是這樣的

{{ my_variable|slice:":255" }} 
+0

我不能讓這一個字符串 – northben 2014-05-15 19:00:29

0

不幸的是它不存在。有實施它的舉措,但它仍處於設計階段(很好,已實施,但正在等待設計決定),如here所述。

附加到該票證的修補程序包含實施。

2

一個更簡單的方法,通過使用標準模板標籤是:

{{ variable|stringformat:".10s" }} 

在這種情況下,10是位置參數,對於字符串,它是要顯示的最大字符數。

29

有一個official built-in filter

{{ variable|truncatechars:255 }} 
+0

這將把省略號(「...」)放在被截斷的字符串之後(而不是在未被截斷的字符之後)。切片不會在其後面放置省略號。我的建議:使用truncatechars。 – MZA 2017-06-29 09:29:41

+0

與上述同意。這在大多數情況下都是正確的(例如,顯示長URL而不會阻礙超鏈接)。 – 2018-02-12 23:50:53