django模版中的截斷過濾器

2022-04-28 17:27:13 字數 1296 閱讀 6745

想輸出一段摘要,需要用到截斷過濾器,查閱了官方文件發現truncatewords方法

但是這個方法只能按照詞【空格】 來截斷需要的內容。不能按照字元長度截斷。官方竟然沒有提供相關的功能。

for example:
}
if value is "joel is a slug", the output will be "joel is ...". newlines within the string will be removed.
}
if value is "joel is a slug

", the output will be "joel is ...

".

谷歌一下後發現stackoverflow上有解決辦法。下面是乙個取巧的辦法。

}...

一行**就搞定了。很方便。另外乙個辦法就是建立乙個自定義的template filter

from django import template
register = template.library()
@register.filter("truncate_chars")
def truncate_chars(value, max_length):
if len(value) > max_length:
truncd_val = value[:max_length]
if not len(value) == max_length+1 and value[max_length+1] != " ":
truncd_val = truncd_val[:truncd_val.rfind(" ")]
return truncd_val + "..."
return value

django 自定義模版過濾器

1 from django import template 2 3 register template.library 4 5 def my template value 6 if value 7 value 8 return value 9 註冊過濾器 10 第一種方式 11 register.f...

django 自定義模版過濾器

1 from django import template 23 register template.library 45 defmy template value 6if value 7 value 8return value9 註冊過濾器10 第一種方式 11 register.filter m...

django中的過濾器語法

過濾器 語法 例如 表示將變數name的值變為小寫輸出 使用管道符號 來應用過濾器 作用 通過使用過濾器來改變變數的計算結果 可以在if標籤中使用過濾器結合運算子 if list1 length 1過濾器能夠被 串聯 構成過濾器鏈 name lower upper過濾器可以傳遞引數,引數使用引號包起...