由于项目中图片展示需要对描述信息进行过滤,如果长度超过20,则其余部分显示...
首先,创建一个包自定义命为filter,在INSTALL_APP中注册该包。
在这个包下面创建一个templatetags包,它应该和models.py,views.py等在同一级,例如:
filter/models.py
templatetags/
views.py
Python代码的模块)和一个包含自定义的标签/过滤器定义的文件,后者的文件名是你将在后面用来载入标签的名字
例如,将自定义标签或者过滤器在放在一个叫tepmlate_filter.py文件里,你可以在模板里做下面的事情:
#coding=utf8from django.template import Library
from django.template.defaultfilters import stringfilter
register = Library()
@register.filter(name='truancate_words', is_safe=True)
@stringfilter
def truancate_words(value, arg):
"""
Truncates a string after a certain number of words including
alphanumeric and CJK characters.
Argument: Number of words to truncate after.
"""
try:
bits = []
for x in arg.split(u':'):
if len(x) == 0:
bits.append(None)
else:
bits.append(int(x))
if int(x) < len(value):
return value[slice(*bits)] + '...'
return value[slice(*bits)]
except (ValueError, TypeError):
return value # Fail silently.
template_html代码{% load template_filter %}
{{sample|truancate_words:"20"}}