1

创建帖子时,我使用 django-ckeditor 作为所见即所得的文本编辑器。它可以毫无问题地捕获并保存内容和正确的 HTML 标签。但是,我的模板呈现由标签包围的<p>变量,这会破坏 RichTextField,因为<p>标签不能嵌套。结果,它将所有文本(带有标签)显示为没有格式的段落。我意识到发生了这种情况,所以我将模板中的周围标签更改为<div>标签,但是当模板加载到浏览器上时,它再次将 div 标签替换为段落标签。我怎样才能摆脱<p>标签,以便我的文本以正确的格式呈现?

这是我的模板:

{% extends 'bandwagon/base.html' %}  
{% block content %}
    <article class="media content-section">
        <img src="{{ post.author.profile.image.url }}" alt="profile photo" class="rounded-circle article-img">
        <div class="media-body">
            <img src="{{ post.image.url }}" class="post-img">
            <div class="article-metadata">
                <a class="mr-2" href="{% url 'user-posts' object.author.username %}">{{ object.author }}</a>
                <small class="text-muted">{{ object.date_posted | date:'F d, Y'}}</small>
                {% if object.author == user %}
                <div>
                    <a href="{% url 'post-update' object.id %}" class="btn btn-outline-secondary btn-sm mt-1 mb-1">Edit</a>
                    <a href="{% url 'post-delete' object.id %}" class="btn btn-outline-danger btn-sm mt-1 mb-1">Delete</a>
                </div>
                {% endif %}
            </div>
            <h2 class='article-title-detail'>{{ object.title }}</h2>
            <div class="article-content">{{ object.content | safe }}</div>
        </div>
    </article>
{% endblock content %}

但是,在浏览器中,响应是这样的:

            <p class="article-content">&lt;h3&gt;Fake Content&lt;/h3&gt;

&lt;h3&gt;&lt;span style=&quot;font-size:13px&quot;&gt;Fake Content&lt;/span&gt;&lt;/h3&gt;</p>
4

1 回答 1

2

默认情况下,CKEditor RichTextField<p>在字段内容周围添加标签。

如果这是您不断查看<p>内容的原因,您可以自定义 CKEditor 编辑器,因此它不会添加<p>如下内容:

#base.py
CKEDITOR_CONFIGS = {
    'default': {
        'autoParagraph': False
    },
}


您还可以创建特定配置并设置特定字段以使用它。在这里阅读更多信息:https ://django-ckeditor.readthedocs.io/en/latest/#optional-customizing-ckeditor-editor

于 2020-01-07T14:34:56.157 回答