使用Django Template过滤器限制字符数

时间:2010-08-14 16:18:14

标签: python django django-templates

我正在尝试在项目列表中输出描述的前255个字符,并且正在寻找获得该方法的方法。

示例:我有一个包含300个左右字符的变量。

我将此变量称为{{ my_variable|characterlimit:255 }}

并且它只返回该变量的前255个字符。

如果这个标签不存在,我会简单地创建它(并建议它进入django),但我想确保在我花时间做之前没有。谢谢!

6 个答案:

答案 0 :(得分:74)

如果“my_variable”是一个字符串,您可以利用slice filter,它将字符串视为字符列表。如果它是一组单词,那么粗略的等值是truncatewords - 但这听起来并不像你的需要。

truncatewords还会在截断结果的末尾添加省略号...

用法类似于

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

答案 1 :(得分:38)

有一个official built-in filter

{{ variable|truncatechars:255 }}

答案 2 :(得分:7)

答案 3 :(得分:4)

使用标准模板标签的更简单方法是:

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

在这种情况下,10是位置参数,对于字符串,它是要显示的最大字符数。

答案 4 :(得分:0)

遗憾的是,它并不存在。有实现它的举措,但它仍处于设计阶段(好,已实施,但等待设计决策),如here所述。

附加到该票证的补丁包含实现。

答案 5 :(得分:0)

使用templatefilter截断文本并不适合响应式设计。因此,您也可以使用CSS截断响应式文本。我知道OP要求使用django templatefilter做到这一点。

您可以使用以下方法来实现响应式的截断文本:

.class {
    width: 100%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}