Django 博客帖子卡|没有样式安全吗?

Django 博客帖子卡|没有样式安全吗?,django,Django,在我的博客帖子卡上,我截短了预览的帖子文本。我用ckeditor创建帖子,所以我的问题是,如果我在用大文本或任何样式呈现的卡片上使用了|safe,那么我在创建帖子时会遇到问题 在使用safe不显示标记时,有没有办法只显示纯文本?也许您可以在模型中添加一个方法,在不显示html标记的情况下呈现这些字符串。例如: import xml.etree.ElementTree as ET class Post(models.Model): ... @property def p

在我的博客帖子卡上,我截短了预览的帖子文本。我用ckeditor创建帖子,所以我的问题是,如果我在用大文本或任何样式呈现的卡片上使用了
|safe
,那么我在创建帖子时会遇到问题


在使用safe不显示标记时,有没有办法只显示纯文本?

也许您可以在模型中添加一个方法,在不显示html标记的情况下呈现这些字符串。例如:

import xml.etree.ElementTree as ET

class Post(models.Model):
   ...
   
   @property
   def plain_text(self):
       return ''.join(ET.fromstring(self.content).itertext())
然后在模板中使用它:

{% for post in posts %}
    {{ post.plain_text }}
{% endfor %}
我正在使用python模块删除html标记,因此您不需要使用
|safe

更新 您可以使用regex尝试以下解决方案:

import re
html_tags_re = re.compile(r'<[^>]+>')

class Post(models.Model):
   # rest of the code...

   @property
   def plain_text(self):
       return html_tags_re.sub('', self.content)
重新导入
html_tags_re=re.compile(r']+>)
班级职务(models.Model):
#代码的其余部分。。。
@财产
def纯文本(自):
返回html_标记_re.sub(“”,self.content)

谢谢您的回复!所以我尝试了
{{post.plain_text.content}
(希望这是对的),在文档元素之后我得到了
垃圾:第3行,第0列
无需使用
。content
纯文本之后
,因为
纯文本
是字符串好的,我修正了,但在文档元素之后我仍然得到
垃圾:第3行,第0列
我认为html结构不正确。参考:我将很快用另一种解决方案更新答案