template.html
{{list.report.description|default:"No description available"|slice:"45" }}{% if list.report.description|length > 45 %}...{% endif %}
1.如果字符输入超过45,这就是切片。
2.创建新报告时出现问题,如果没有说明,则应将默认文本显示为“无描述”,而是显示文本和3个点。
2.如果字段以空保存,则无问题,默认显示为“无可用说明”。
由于
答案 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)