【问题标题】:Is There A Way to Truncate by Words in View in Django?有没有办法在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

【问题讨论】:

    标签: python json django serialization truncate


    【解决方案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 一起使用?
    猜你喜欢
    • 2015-08-12
    • 2020-02-04
    • 2022-06-28
    • 1970-01-01
    • 2012-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多