我正在研究一个小问题。 我在Django模板上添加了一个文本。该点是截断该文本,并在其他标记中添加文本的第二部分。 我读到了:
{{ value|truncatechars_html:x }}
它可以工作,但我不能使用截断文本的第二部分。
如果有人有想法......谢谢!!!!
答案 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 %}