В 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.