gpt4 book ai didi

django - 如何使用 truncatewords 在 Django 模板中添加省略号而不需要最后的空格?

转载 作者:行者123 更新时间:2023-12-03 01:21:49 25 4
gpt4 key购买 nike

truncatewords 过滤器在省略号前插入一个空格。如,“一本精美的节 eclipse 谱书……”
与期望的相比
“一本精美的节 eclipse 谱书……”

有没有一种简单的方法可以让这个过滤器不在那里放置空格?我可以很轻松地在 View 中处理此问题,但更喜欢在模板中执行此操作 - 理想情况下无需创建自定义过滤器。欢迎提出任何建议。

最佳答案

Djangosnippets 有一堆模板过滤器,和this one looks pretty neat :

# From http://djangosnippets.org/snippets/1259/

from django import template

register = template.Library()

@register.filter
def truncatesmart(value, limit=80):
"""
Truncates a string after a given number of chars keeping whole words.

Usage:
{{ string|truncatesmart }}
{{ string|truncatesmart:50 }}
"""

try:
limit = int(limit)
# invalid literal for int()
except ValueError:
# Fail silently.
return value

# Make sure it's unicode
value = unicode(value)

# Return the string itself if length is smaller or equal to the limit
if len(value) <= limit:
return value

# Cut the string
value = value[:limit]

# Break into words and remove the last
words = value.split(' ')[:-1]

# Join the words and return
return ' '.join(words) + '...'

关于django - 如何使用 truncatewords 在 Django 模板中添加省略号而不需要最后的空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4082283/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com