gpt4 book ai didi

python - Wagtail:如何使用 RichTextField 来表示模型的字符串?

转载 作者:行者123 更新时间:2023-11-28 18:31:57 24 4
gpt4 key购买 nike

我目前正在处理这个片段

@register_snippet
class Foo(models.Model):
body = RichTextField()

不知何故,我决定我需要定义 __str__这样我就可以区分多个片段。我相信使用 body内容作为字符串表示可能是个好主意。虽然 body 可以变得非常大,所以前 20 个字符应该可以。

认为这个任务是小菜一碟,我写了这段代码:

@register_snippet
class Foo(models.Model):
body = RichTextField()

def __str__(self):
return self.body[:20]

... 这导致了丑陋的表现,例如 <p>Quequeueueueue?</<p>FOO<br/></p> .

我检查了数据库,发现标记存储在数据库中,这看起来很明显。虽然,我仍然想知道。

在不使用 CPU 密集型 HTML 解析器和解析整个的情况下删除 HTML 标记的方法是什么 body

我相信正则表达式可以删除一些 标签,但我该如何处理像</a 这样的情况? , </blockqu , < , </

最佳答案

没有安全转义 html 的内置方法。来自docs -

从 1.8 版开始弃用:removetags 不能保证 HTML 安全输出,并且出于安全考虑已被弃用。考虑改用漂白剂。

Bleach是来自 Mozilla 的 html 清理库。在您的代码片段类上创建一个返回漂白字符串并删除所有标签的方法可能是最有意义的。

此外,您可以使用 built-in template tags truncatewordstruncatechars 等限制在模板呈现时显示的字符/单词数量。

关于python - Wagtail:如何使用 RichTextField 来表示模型的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36240034/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com