在 django 中截断 html 文本
Posted
技术标签:
【中文标题】在 django 中截断 html 文本【英文标题】:Truncate html text in django 【发布时间】:2016-05-05 10:44:11 【问题描述】:在 django 中,我们可以使用截断器类来截断文本
from django.utils.text import Truncator
s = "<div>Please truncate this</div>"
Truncator(s).words(2, html=True)
这将返回省略号,所以让我们将省略号替换为其他内容
truncate = "read more %(truncated_text)s"
Truncator(s).words(2, html=True,truncate=truncate)
这会返回<div>Please truncateread more </div>
truncate = "%(truncated_text)s read more"
Truncator(s).words(2, html=True,truncate=truncate)
这会返回<div>Please truncate read more</div>
但我想得到read more <div>Please truncate</div>
这可以通过检查截断文本的长度来完成,是否有任何智能方法可以做到这一点?
编辑:
如果不可能,我们可以得到这个<div>Please truncate</div>read more
【问题讨论】:
【参考方案1】:Truncator 类总是将truncate
附加到字符串的末尾。
所以,我认为最好的方法是比较截断的字符串和原始字符串,并在需要时添加“阅读更多”
截断器类源代码。 https://github.com/django/django/blob/master/django/utils/text.py#L224
【讨论】:
正如我已经提到的,这可以通过比较来完成,我正在寻找其他方法。问题在于截断器它附加在文本内部而不是最后添加。我有这部分的更新问题。 使用 django Truncator 无法做到这一点。以上是关于在 django 中截断 html 文本的主要内容,如果未能解决你的问题,请参考以下文章
Django:为啥我放置在 Django Summernote 中的文本会在我的 HTML 模板中显示 HTML 标记?