在 CKEditor 中仅获取 RichTextField 中的文本?
Get only text in RichTextField in CKEditor?
我是新手。我正在使用 Django 写个人博客。我正在使用 CKEditor
将图像插入我的博客 post。但是,我想在主页上显示 posts 的一些第一句话,但不包括 posts 中的图像。我想知道是否有一种方法可以只从 RichTextField
in CKEditor
.
中获取文本
这是我目前的预览内容:
我希望它是这样的(没有图片):
这是我当前的代码:
{% for post in post_list %}
<div class="card mb-4">
<div class="card-body">
<h2 class="card-title">{{ post.title }}</h2>
<p class="card-text text-muted h6">{{ post.Author }} | {{ post.created_on}} </p>
<p class="card-text">{{post.content|safe|truncatewords:20 }}</p>
<a href="{% url 'post_detail' post.slug %}" class="btn btn-primary">Read More →</a>
</div>
</div>
{% endfor %}
最快的方法是使用 Django 的内置函数 striptags filter,像这样:
<p class="card-text">{{post.content|striptags|safe|truncatewords:20 }}</p>
这将从您的 RichTextField 中删除所有 HTML 标签,同时删除所有图像标签。不过,这也会删除任何其他标签,例如 <strong>
或 <i>
.
如果您想要一个更强大的解决方案,您可以查看 django-bleach,一个像这样清理 TextFields 的库。 django-bleach 的工作方式是您提供允许的标签(或使用默认标签)。 django-bleach 然后将从该字段中删除任何其他标签(及其内容)。
我是新手。我正在使用 Django 写个人博客。我正在使用 CKEditor
将图像插入我的博客 post。但是,我想在主页上显示 posts 的一些第一句话,但不包括 posts 中的图像。我想知道是否有一种方法可以只从 RichTextField
in CKEditor
.
这是我目前的预览内容:
我希望它是这样的(没有图片):
这是我当前的代码:
{% for post in post_list %}
<div class="card mb-4">
<div class="card-body">
<h2 class="card-title">{{ post.title }}</h2>
<p class="card-text text-muted h6">{{ post.Author }} | {{ post.created_on}} </p>
<p class="card-text">{{post.content|safe|truncatewords:20 }}</p>
<a href="{% url 'post_detail' post.slug %}" class="btn btn-primary">Read More →</a>
</div>
</div>
{% endfor %}
最快的方法是使用 Django 的内置函数 striptags filter,像这样:
<p class="card-text">{{post.content|striptags|safe|truncatewords:20 }}</p>
这将从您的 RichTextField 中删除所有 HTML 标签,同时删除所有图像标签。不过,这也会删除任何其他标签,例如 <strong>
或 <i>
.
如果您想要一个更强大的解决方案,您可以查看 django-bleach,一个像这样清理 TextFields 的库。 django-bleach 的工作方式是您提供允许的标签(或使用默认标签)。 django-bleach 然后将从该字段中删除任何其他标签(及其内容)。