Django有截断词模板标签,它在给定的字数下剪切文本。但是没有什么像truncatechars。给定字符长度限制时,在模板中剪切文本的最佳方式是什么?Django模板标签截断文本
55
A
回答
102
1
2
你应该写一个自定义模板过滤器:http://docs.djangoproject.com/en/dev/howto/custom-template-tags/#writing-custom-template-filters
看一看truncatewords
是如何构建的django.utils.text
46
{{ value|slice:"5" }}{% if value|length > 5 %}...{% endif %}
更新
自从1.4版本, Django有一个built-in template tag此:
{{ value|truncatechars:9 }}
9
我做我自己的模板过滤器,即加“......”来(的最后一个字)的(截)字符串的结束,以及:
from django import template
register = template.Library()
@register.filter("truncate_chars")
def truncate_chars(value, max_length):
if len(value) > max_length:
truncd_val = value[:max_length]
if not len(value) == max_length+1 and value[max_length+1] != " ":
truncd_val = truncd_val[:truncd_val.rfind(" ")]
return truncd_val + "..."
return value
+0
它现在默认为django。 – 2017-11-12 08:58:40
0
添加一个“截断”过滤器是一项功能要求4年,但最终降落在后备箱,据我了解https://code.djangoproject.com/ticket/5025 - 所以我们要等待下一个版本或使用主干。
2
0
如果你希望创建自己的自定义模板标签,可以考虑使用Django的UTIL它Truncator。下面是一个示例用法:
>>> from django.utils.text import Truncator
>>> Truncator("Django template tag to truncate text")
<Truncator: <function <lambda> at 0x10ff81b18>>
>>>Truncator("Django template tag to truncate text").words(3)
u'Django template tag...'
Truncator("Django template tag to truncate text").words(1)
u'Django...'
Truncator("Django template tag to truncate text").chars(20)
u'Django template t...'
Truncator("Django template tag to truncate text").chars(10)
u'Django ...'
然后,你可以把它放在一个模板标签:
from django import template
from django.utils.text import Truncator
register = template.Library()
@register.filter("custom_truncator")
def custom_truncator(value, max_len, trunc_chars=True):
truncator = Truncator(value)
return truncator.chars(max_len) if trunc_chars else truncator.words(max_len)
相关问题
- 1. django - 截断模板标签的输出?
- 2. Django模板标签显示Django版本
- 3. 如何在Django模板循环中截断文本
- 4. 模板标签Django
- 5. Django - 模板标签
- 6. Django模板标签
- 7. Django模板:在标签
- 8. Django模板标签错误
- 9. Django - 包含模板标签
- 10. 模板标签中的Django
- 11. Django:调试模板标签
- 12. Django模板标签,生成模板块标签
- 13. 截断在鲭模板
- 14. Flex截断按钮标签
- 15. Bootstrap面板文本截断和重叠
- 16. Silverlight:带有文本截断的按钮模板
- 17. Django HTML截断
- 18. 在增加字体大小后截断标签文本
- 19. Django模板延伸标签问题
- 20. 追加Django的模板标签
- 21. Django的模板标签不工作
- 22. 的Django无法加载模板标签
- 23. django模板的摘要标签
- 24. 在Django中编写模板标签
- 25. Django:如果在列表模板标签
- 26. Django模板标签有条件
- 27. Django在模板标签中读取cookie
- 28. Django elif模板标签呈现常量
- 29. Django的模板标签实例
- 30. django自定义标签与模板块?
“truncatechars”正在使用最新的Django 1.9 – 2016-07-15 08:18:40