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

Posted

技术标签:

【中文标题】有没有办法在Django的视图中截断单词?【英文标题】:Is There A Way to Truncate by Words in View in Django? 【发布时间】:2016-04-29 02:44:47 【问题描述】:

我制作了一个 JSON 序列化程序 to 视图。我返回了一个名为 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'))

这就像一个魅力,但是,我想将contents 返回为截断的单词。


环境

Django 1.8.7 Python 3.4

【问题讨论】:

【参考方案1】:

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

> 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 - 我添加了一些上下文。 感谢您提供答案。 我如何才能将它与休息框架 Serializer 一起使用?

以上是关于有没有办法在Django的视图中截断单词?的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法可以在Django中的同一个模板中渲染多个视图?如果有最佳实践可以做到这一点?提前致谢

有没有办法将变量传递给 Django 中的通用视图?

根据标签长度调整从 xib 创建的视图大小

Django在模板中获取当前视图

如何获取django应用程序中所有视图的列表?

如何在Django中自动刷新/重定向视图[重复]