Django管理中的CKEditor配置

3

我需要在Django的管理面板中添加富文本编辑器,因此我选择了CKEditor,但是我在配置过程中遇到了一些问题:

当我尝试使用Enter键在Django管理面板中移动行时,编辑器会出现一些问题,它会将p标签添加到我的文本中,而我不需要它(我的意思是在管理编辑器中,而不是在模板中)。我能否以某种方式停用它?或者替换为br标签?

enter image description here

我使用CKEditor的默认配置。

settings.py

CKEDITOR_CONFIGS = {
    'awesome_ckeditor': {
        'toolbar': 'Basic',
    },
}

models.py

class Section_1(models.Model):
    order = models.IntegerField(blank=True, default=0)
    picture = models.ImageField(blank=True)
    text = RichTextField(max_length=200, blank=True)
    ytlink = models.URLField(blank=True)

        def __str__(self):
        return self.text

    class Meta:
        verbose_name = 'Секция 1'
        verbose_name_plural = 'Секция 1'

模板中的集成:

<div class="main-screen__middle-title">
{% for sec_1 in sec_1 %}
{% if sec_1.order == 1 %}
<h4 class="main-screen__middle-title_active" data-mScreen="mscreen{{ 
sec_1.order }}">{{ sec_1.text }}</h4>
{% else %}
<h4 data-mScreen="mscreen{{ sec_1.order }}">{{ sec_1.text }}</h4>
{% endif %}
{% endfor %}

</div>

所以,当我不使用{{ sec_1.text| safe }}打开模板时,我看到这个:

enter image description here

如果我使用它,CKEditor会忽略 h4 标签。

enter image description here

问题如下:

1)如何在管理面板中删除自动添加的'p'

2)如果我在变量中使用|safe,如何使其不忽略外部HTML标记?

2个回答

1
如果您不想将文本包裹在任何东西中,可以选择插入换行标签,因为默认情况下它会使用

标签进行包装。

config.enterMode = CKEDITOR.ENTER_P;

您需要在 config.js 文件中添加以下行以使用 CKEditor:
CKEDITOR.editorConfig = function (config)
{
   config.enterMode = CKEDITOR.ENTER_BR;

   ...
};

否则,如果您想将其包装在
标记中,则:

config.enterMode = CKEDITOR.ENTER_DIV;

谢谢您的回答,但我在哪里可以找到这个文件?也许我没有正确安装ckeditor? - Andrej Vilenskij
尝试将代码放入 settings.py 文件中。它会覆盖原有内容。 - Astik Anand
是的,但它看起来和Django有些不同。 CKEDITOR_CONFIGS = { 'default': { 'toolbar': 'Basic', 'enterMode': 2, } - Andrej Vilenskij
你可以两种方式都做,这可以通过一个函数来实现。如果这个解决方案对你有帮助,那么你可以选择这个答案。如果还有其他问题,请告诉我。谢谢。 - Astik Anand

0

寻找有关Django的答案:

settings.py

CKEDITOR_CONFIGS = {
    'default': {
        'toolbar': 'Basic',
        **'enterMode': 2,** 
    },
    'awesome_ckeditor':{
        'toolbar': 'Custom',
        'toolbar_Custom': [
            [ 'Bold','Italic','Underline','Strike','- 
','Link','Unlink','Anchor','-', 'Styles','Format','Font','FontSize','-', 
'Image' ]
        ]
    },
}

非常感谢。它对我有用。节省了我的时间。 :) 但是请确保没有星号 ;) - Almas Dusal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接