如何截断文本并使用文本的第二部分?

时间:2014-08-20 07:50:29

标签: django django-templates

我正在研究一个小问题。 我在Django模板上添加了一个文本。该点是截断该文本,并在其他标记中添加文本的第二部分。 我读到了:

{{ value|truncatechars_html:x }}

它可以工作,但我不能使用截断文本的第二部分。

如果有人有想法......谢谢!!!!

1 个答案:

答案 0 :(得分:0)

使用切片 - see docs here。 python中的字符串也是字符列表,因此您可以执行以下操作:

First part is {{ value|slice:":x" }}
Second part is {{ value|slice:"x+1:" }}

然而,如果你需要保留一些HTML代码,切片就不会这样做。为此,您需要编写自己的自定义标记(您可以查看截断字符中的代码),该标记返回两个值 - 一个用于字符串的每个部分。

假设您的过滤器返回如下内容:

def your_truncate_filter(value, arg):
    ... # your code for splitting
    data = {}
    data['first'] = "....." # first part of string with html tags !!!
    data['second'] = "....." # second part of string
    return data

您可以在模板中访问它,如下所示:

{% with parts=value|your_truncate_filter:x %}
     {{ parts.first }}
     {{ parts.second }}

{% endwith %}