【发布时间】:2013-08-01 05:11:49
【问题描述】:
在 Django 中我想使用一个简单的模板标签来截断数据。
这是我目前所拥有的:
@register.filter(name='truncate_simple')
def truncate_char_to_space(value, arg):
"""
Truncates a string after a given length.
"""
data = str(value)
if len(value) < arg:
return data
if data.find(' ', arg, arg+5) == -1:
return data[:arg] + '...'
else:
return data[:arg] + data[arg:data.find(' ', arg)] + '...'
但是当我使用它时,我得到以下错误:
{{ item.content|truncate_simple:5 }}
错误:
'ascii' 编解码器无法对位置 84 中的字符 u'\u2013' 进行编码:序数不在范围内(128)
错误在线开始data = str(value)
为什么?
【问题讨论】:
-
您是否尝试将“from future import unicode_literals”添加到 python 文件的顶部?