Ckeditor "Преобразуйте HTMLField в поле Placeholder и настройте заполнитель так, чтобы он принимал только TextPlugin" - PullRequest
0 голосов
/ 06 апреля 2020

Возможно, я не понимаю какой-то простой вещи. Я читаю документацию второго дня и не понимаю, как использовать ckeditor в django -cms, в стороннем плагине.

Здесь написано:

Использование в качестве поля модели Если вы хотите использовать виджет в собственных полях модели, вы можете! Просто импортируйте предоставленный HTMLField следующим образом:

from djangocms_text_ckeditor.fields import HTMLField И используйте его в своих моделях, как TextField:

class MyModel(models.Model): myfield = HTMLField(blank=True) Это поле не позволяет вставлять какие-либо другие плагины CMS в текстовом редакторе. Плагины могут быть встроены только в поля Placeholder.

Если вам нужно разрешить встраивание дополнительных плагинов в поле HTML, преобразуйте HTMLField в поле Placeholder и настройте заполнитель так, чтобы он принимал только TextPlugin. Для получения дополнительной информации об использовании заполнителей вне CMS см .:

http://docs.django-cms.org/en/latest/how_to/placeholders.html

В настоящее время HTMLField работает и после прочтения инструкций я не понимаю как я могу "преобразовать поле HTML в заполнитель и настроить заполнитель так, чтобы он принимал только TextPlugin" в стороннем плагине, который был полностью интегрирован в django -cms. Я никогда не создавал заполнители в сторонних плагинах.

Моя цель состоит в том, чтобы в стороннем плагине я мог установить текстовое поле, в котором я могу редактировать текст, используя функции форматирования. Я использую последнюю Django -CMS. По умолчанию он имеет djangocms_text_ckeditor.

Спасибо!

models.py:

[..]

    from djangocms_text_ckeditor.fields import HTMLField

    class Question(models.Model):
    content = HTMLField(blank=True)
[..]

template

[..]
{% load cms_tags %}
[..]


    {% for field in form %}
    {{ field }}
    {% endfor %}

[..]

Моя текстовая область выглядит следующим образом :

<textarea name="content" cols="40" rows="10" class="CMS_CKEditor" data-ckeditor-basepath="/static/djangocms_text_ckeditor/ckeditor/" id="id_content"></textarea>

Я заметил, что через панель администратора можно было использовать редактор для этой новой области текста, но на сайте ничего не изменилось для пользователя. Визуально это обычная текстовая область

1 Ответ

0 голосов
/ 08 апреля 2020

Я нашел решение. Я должен включить тег "{{form.media}}" в шаблоны

  <form method="post" enctype="multipart/form-data" novalidate>
    {% csrf_token %}
    {{ form.media }}
    [..]
...