Конфигурация CKEditor в админке django - PullRequest
0 голосов
/ 06 июня 2018

Мне нужно добавить richtextfield в мою панель администратора в Django, поэтому я выбираю CKEditor, но у меня есть некоторые проблемы с настройкой:

Когда я пытаюсь переместить строку в панели администрирования django (с помощью Enterkey) редактор по какой-то причине добавляет тег 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 ]

0 голосов
/ 10 июня 2018

Найти ответ для 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' ]
        ]
    },
}
0 голосов
/ 06 июня 2018

Если вы предпочитаете не переносить текст во что-либо , вы можете вставить тег разрыва строки, поскольку по умолчанию для переноса используется тег p.

config.enterMode = CKEDITOR.ENTER_P;

Вам необходимо добавить строку ниже в config.js файл для CKEditor:

CKEDITOR.editorConfig = function (config)
{
   config.enterMode = CKEDITOR.ENTER_BR;

   ...
};

или, если вы хотите, чтобы затем в тег div вставлялся,

config.enterMode = CKEDITOR.ENTER_DIV;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...