django 管理中的 CKEditor 配置
CKEditor configuration in django admin
我需要在我的 Django 管理面板中添加 richtextfield,所以我选择了 CKEditor,但是我在配置方面遇到了一些问题:
当我出于某种原因尝试在 django 管理面板(使用 Enter 键)编辑器中移动一行时,将 p
标记添加到我的文本中,我不需要(我的意思是在管理编辑器中,不是在模板中)。我可以以某种方式停用它吗?或者替换为 br
标签?
我使用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 }}
的模板时,我看到了这个:
如果我使用它,CKEditor 会忽略 h4
标签:
问题是:
1) 如何在管理面板中删除自动添加 'p'
?
2) 如果我对我的变量使用 |safe
,如何让它不忽略外部 html-tags?
如果您不想将文本换行,您可以选择插入换行符标记,因为默认情况下它使用 p
标记进行换行。
config.enterMode = CKEDITOR.ENTER_P;
You need to add below line in config.js file for CKEditor:
CKEDITOR.editorConfig = function (config)
{
config.enterMode = CKEDITOR.ENTER_BR;
...
};
否则如果你想包装在 div
标签中,
config.enterMode = CKEDITOR.ENTER_DIV;
寻找 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' ]
]
},
}
我需要在我的 Django 管理面板中添加 richtextfield,所以我选择了 CKEditor,但是我在配置方面遇到了一些问题:
当我出于某种原因尝试在 django 管理面板(使用 Enter 键)编辑器中移动一行时,将 p
标记添加到我的文本中,我不需要(我的意思是在管理编辑器中,不是在模板中)。我可以以某种方式停用它吗?或者替换为 br
标签?
我使用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 }}
的模板时,我看到了这个:
如果我使用它,CKEditor 会忽略 h4
标签:
问题是:
1) 如何在管理面板中删除自动添加 'p'
?
2) 如果我对我的变量使用 |safe
,如何让它不忽略外部 html-tags?
如果您不想将文本换行,您可以选择插入换行符标记,因为默认情况下它使用 p
标记进行换行。
config.enterMode = CKEDITOR.ENTER_P;
You need to add below line in config.js file for CKEditor:
CKEDITOR.editorConfig = function (config)
{
config.enterMode = CKEDITOR.ENTER_BR;
...
};
否则如果你想包装在 div
标签中,
config.enterMode = CKEDITOR.ENTER_DIV;
寻找 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' ]
]
},
}