在Django中,有没有办法在视图中截断?

Erd*_*ray 6 python django serialization json truncate

我做了一个JSON序列化程序to视图.我返回了一个QuerySet被调用的对象,entries它查找POST参数,如下所示:

entries = blog.models.Entry.objects.filter(content__icontains=request.POST.get('q'))
Run Code Online (Sandbox Code Playgroud)

然后我用serializersdjango.core.

serializers.serialize("json", entries, fields=('title', 'content', 'created'))
Run Code Online (Sandbox Code Playgroud)

这就像一个魅力,然而,我想把contents变成截断的单词.


环境

  • Django 1.8.7
  • Python 3.4

Dav*_*ave 9

您可以使用Truncator来自的类django.utils.text,例如:

> 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...
Run Code Online (Sandbox Code Playgroud)

Truncator也可以截断为多个字符,并且可以解析HTML和纯文本.虽然官方文档似乎缺失,但源代码非常明确,请参阅:https://github.com/django/django/blob/master/django/utils/text.py