在 CKEditor 中仅获取 RichTextField 中的文本?

hig*_*ine 0 python django ckeditor

我是新手。我正在使用 Django 编写个人博客。我曾经CKEditor能够将图像插入到我的博客文章中。但是,我想在主页上显示帖子的一些第一句话,其中不包含帖子中的图像。我想知道是否有一种方法可以只从RichTextFieldin获取文本CKEditor获取文本。

这是我当前的预览内容: 1

我希望它是这样的(没有图像): 2

这是我当前的代码:

{% 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 &rarr;</a>
        </div>

      </div>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

Nic*_*oen 5

最快的方法是 Django 的内置striptags 过滤器,如下所示:

<p class="card-text">{{post.content|striptags|safe|truncatewords:20 }}</p>

这将从 RichTextField 中删除所有 HTML 标签,同时删除所有图像标签。这也将删除任何其他标签,例如<strong>, 或<i>

如果您想要一个更强大的解决方案,您可以查看django-bleach,一个用于清理此类 TextField 的库。django-bleach 的工作方式是您提供允许的标签(或使用默认标签)。然后 django-bleach 将从该字段中删除任何其他标签(及其内容)。