在 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 &rarr;</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 然后将从该字段中删除任何其他标签(及其内容)。