在Django中,是否有一种按单词截断视图的方法?

9

我制作了一个JSON序列化器以便于查看。我返回了一个名为entriesQuerySet对象,该对象查找POST参数如下:

entries = blog.models.Entry.objects.filter(content__icontains=request.POST.get('q'))

然后我使用了来自django.core的序列化器。
serializers.serialize("json", entries, fields=('title', 'content', 'created'))

这个功能非常好用,但是我想将content返回为截断的单词。


环境

  • Django 1.8.7
  • Python 3.4
1个回答

17
你可以使用来自django.utils.textTruncator类,例如:
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

虽然这段代码可能回答了问题,但是提供关于为什么和/或如何回答问题的额外上下文可以提高其长期价值。仅限代码的答案是不被鼓励的。 - Ajean
1
感谢 @Ajean - 我添加了一些上下文。 - Dave
感谢您提供答案。 - Eray Erdin
我该如何在rest框架的Serializer中使用它? - ldavid

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接