文字切片不起作用

时间:2013-06-29 14:17:36

标签: django django-forms django-templates django-views

template.html

{{list.report.description|default:"No description available"|slice:"45" }}{% if list.report.description|length > 45 %}...{% endif %}

1.如果字符输入超过45,这就是切片。

2.创建新报告时出现问题,如果没有说明,则应将默认文本显示为“无描述”,而是显示文本和3个点。

2.如果字段以空保存,则无问题,默认显示为“无可用说明”。

由于

1 个答案:

答案 0 :(得分:1)

虽然我不完全确定你的代码无法正常工作,但无论如何都是“错误的”。

请尝试使用truncatechars方法:https://docs.djangoproject.com/en/dev/ref/templates/builtins/#truncatechars

{{ value|truncatechars:9 }}

如果值为Joel is a slug,则输出为Joel i...

对于Django 1.3或更早版本,请使用以下模板标签:http://djangosnippets.org/snippets/444/

from django import template
register = template.Library()

@register.filter
def truncatechars(s, num):
    """
    Truncates a word after a given number of chars  
    Argument: Number of chars to truncate after
    """
    length = int(num)
    string = []
    for word in s.split():
        if len(word) > length:
            string.append(word[:length]+'...')
        else:
            string.append(word)
    return u' '.join(string)