Как в Django в админке с помощью ckeditor сделать свой дизайн для отдельных блоков текста?

В Django можно использовать интеграцию CKEditor для настройки редактирования текста в админке, включая возможность создания своих дизайнов для отдельных блоков текста.

Для начала, установите CKEditor, добавив его в зависимости вашего проекта в файле requirements.txt или воспользовавшись менеджером пакетов pip. Выполните следующую команду:

pip install django-ckeditor

После установки CKEditor, добавьте его в INSTALLED_APPS в файле настроек проекта settings.py:

INSTALLED_APPS = [
    ...
    'ckeditor',
    ...
]

Далее, добавьте CKEditorWidget к вашей модели, в которой хотите использовать редактирование текста с помощью CKEditor. Например, если у вас есть модель Post, добавьте поле content с CKEditorWidget:

from django.db import models
from ckeditor.fields import RichTextField

class Post(models.Model):
    title = models.CharField(max_length=100)
    content = RichTextField()

Вы можете сконфигурировать CKEditor со своими собственными дизайнами для отдельных блоков текста в админке, используя параметры конфигурации CKEditor. Для этого создайте файл ckeditor_config.js в папке static вашего Django-приложения и задайте необходимую конфигурацию.

Пример ckeditor_config.js для добавления своего дизайна очередного блока текста в админке:

CKEDITOR.editorConfig = function( config ) {
    config.stylesSet = [
        // Ваш дизайн для отдельного блока текста
        {
            name: 'My Block Style',
            element: 'p',
            styles: {
                'background-color': 'yellow',
                'color': 'red',
                'font-weight': 'bold',
            }
        }
    ];
    // ... Другие конфигурационные параметры CKEditor
};

После создания файла конфигурации, задайте ссылку на него в админке, добавив следующий код в файле urls.py вашего Django-проекта:

from django.contrib import admin
from django.urls import path
from django.conf.urls.static import static
from django.conf import settings
from ckeditor_uploader import views as ckeditor_views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('ckeditor/', include('ckeditor_uploader.urls')),
    path('ckeditor/upload/', ckeditor_views.upload, name='ckeditor_upload'),
    path('ckeditor/browse/', ckeditor_views.browse, name='ckeditor_browse'),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

Теперь вы можете использовать свой дизайн для отдельных блоков текста в админке, выбирая его из выпадающего списка стилей на панели редактирования текста, когда вы создаете или редактируете объекты вашей модели Post в админке Django.

Важно отметить, что в коде используется FileChooser из пакета ckeditor_uploader, который позволяет загружать файлы с помощью CKEditor. Чтобы использовать его, не забудьте также добавить 'ckeditor_uploader' в INSTALLED_APPS и провести необходимые настройки для загрузки и отображения загруженных файлов с помощью CKEditor.