有没有办法在 Django 中按视图中的单词截断?

Is There A Way to Truncate by Words in View in Django?

我制作了一个 JSON 序列化程序 to 视图。我 return 编辑了一个名为 entriesQuerySet 对象,它查找 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 contents 变成截断的单词。


环境

您可以使用 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