有没有办法在 Django 中按视图中的单词截断?
Is There A Way to Truncate by Words in View in Django?
我制作了一个 JSON 序列化程序 to
视图。我 return 编辑了一个名为 entries
的 QuerySet
对象,它查找 POST 参数如下:
entries = blog.models.Entry.objects.filter(content__icontains=request.POST.get('q'))
然后我使用了 django.core
中的 serializers
。
serializers.serialize("json", entries, fields=('title', 'content', 'created'))
这很有用,但是,我想 return content
s 变成截断的单词。
环境
- Django 1.8.7
- Python 3.4
您可以使用 django.utils.text
中的 Truncator
class,例如:
from django.utils.text import Truncator
my_text = "Lorem ipsum dolor sit amet"
n_words = 3
truncated_text = Truncator(my_text).words(n_words)
print(truncated_text)
# Lorem ipsum dolor...
Truncator
也可以截断为多个字符,并且可以解析 HTML 以及纯文本。虽然官方文档似乎丢失了,但源代码非常有解释性,请参阅:https://github.com/django/django/blob/master/django/utils/text.py
我制作了一个 JSON 序列化程序 to
视图。我 return 编辑了一个名为 entries
的 QuerySet
对象,它查找 POST 参数如下:
entries = blog.models.Entry.objects.filter(content__icontains=request.POST.get('q'))
然后我使用了 django.core
中的 serializers
。
serializers.serialize("json", entries, fields=('title', 'content', 'created'))
这很有用,但是,我想 return content
s 变成截断的单词。
环境
- Django 1.8.7
- Python 3.4
您可以使用 django.utils.text
中的 Truncator
class,例如:
from django.utils.text import Truncator
my_text = "Lorem ipsum dolor sit amet"
n_words = 3
truncated_text = Truncator(my_text).words(n_words)
print(truncated_text)
# Lorem ipsum dolor...
Truncator
也可以截断为多个字符,并且可以解析 HTML 以及纯文本。虽然官方文档似乎丢失了,但源代码非常有解释性,请参阅:https://github.com/django/django/blob/master/django/utils/text.py