django truncatewords 截取中文

来源:互联网 发布:网络销售培训招生 编辑:程序博客网 时间:2024/05/26 22:58

django template 中自带的filter  truncatewords 是无法正确截取规定长度的的字符串的。由于英语单词是按照空格区分的,而汉字不是。

源码

@register.filter(is_safe=True)
@stringfilter
def truncatewords(value, arg):
    """
    Truncates a string after a certain number of words.


    Argument: Number of words to truncate after.


    Newlines within the string are removed.
    """
    try:
        length = int(arg)
    except ValueError: # Invalid literal for int().
        return value # Fail silently.
    return Truncator(value).words(length, truncate=' ...')

在words中起作用的代码是:

words = self._wrapped.split()

也就是使用了空格分离字符。



0 0
原创粉丝点击