在长文本中间是否有本机的方法来truncatechars?
我要寻找的示例:
word = '123456789'
{{ word|truncatechars_middle:4 }}
显示:
12...89
答案 0 :(得分:1)
据我所知,但是您可以通过{{3}}来定义自己。
在您的应用中,您可能需要以黑体字添加元素:
struct ContentView : View {
@State var url: String = "https://robohash.org/random.png"
@State var image: URLImage = URLImage()
var body: some View {
VStack {
Button(action: {
self.url = "https://robohash.org/\(Int.random(in: 0 ..< 10)).png"
self.image.imageLoader.load(url: URL(string: self.url)!)
}) {
Text("Get Random Robot Image")
}
image
}
}
}
app/
__init__.py
templatetags/
__init__.py
text_utils.py
文件可能只是空的。在__init__.py
文件中,您可以编写:
text_utils.py
然后在模板中,可以将模板过滤器用于:
# app/templatetags/text_utils.py
from django.template import Library
from django.template.defaultfilters import stringfilter
register = Library()
@register.filter(is_safe=True)
@stringfilter
def truncatechars_middle(value, arg):
try:
ln = int(arg)
except ValueError:
return value
if len(value) <= ln:
return value
else:
return '{}...{}'.format(value[:ln//2], value[-((ln+1)//2):])
如果字符数为 ,则会在末尾添加一个额外的字符,例如:
{% load text_utils %}
{{ word|truncatechars_middle:4 }}