django-截断模板标签的输出?

问题描述

| 我有一个输出文本的模板标签。如何通过truncate_words运行它? 例如我的搜索结果通过以下方式返回:
{% get_translated_value result \"text\" %}
如何通过truncate_words:50运行它? 答案是(我几个小时不能更新此帖子):
{% filter truncatewords:30 %}
    {% get_translated_value result \"text\" %}
{% endfilter %}
    

解决方法

        
from django import template
from django.utils.encoding import force_unicode
register = template.Library()

def truncate(value,arg = None):
    if arg:
        return force_unicode(value)[:arg]
    return value

register.filter(\'truncate\',truncate)
还有一些其他选择(没有尝试过...自己动手了): http://djangosnippets.org/snippets/163/ http://djangosnippets.org/snippets/194/ http://djangosnippets.org/snippets/1471/