Ckeditor один из лучших визуальных редакторов. Практически на каждый сайт на котором приходится, добавлять или изменять контент необходим визуальный редактор. Вот и я решил для одного из своих проектов дать возможность пользователям удобно редактировать статьи. ниже приведу пример настройки самого редактора Ckeditor и плагина к нему для загрузки изображений через веб-интерфейс ckeditor-uploaders.
Первым делом установим сам пакет в виртуальное окружение:
pip install django-ckeditor
Далее в INSTALLED_APPS добавим наши приложения:
'ckeditor', 'ckeditor_uploader',
Отмечу что второй пакет ставится автоматически и отдельно его устанавливать не надо.
Далее нужно настроить основные конфиги в settings.py
# Зависимость визуального редактора CKEDITOR_JQUERY_URL = 'https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js' CKEDITOR_UPLOAD_PATH = "uploads/" CKEDITOR_IMAGE_BACKEND = 'pillow' CKEDITOR_CONFIGS = { 'default': { 'toolbar': 'Full', 'height': 500, 'width': 900, 'extraPlugins':'codesnippet', }, } CKEDITOR_UPLOAD_SLUGIFY_FILENAME = False CKEDITOR_RESTRICT_BY_USER = True CKEDITOR_BROWSE_SHOW_DIRS = True
В файле urls нашего приложения прописываем url ckeditor
url(r'^ckeditor/', include('ckeditor_uploader.urls')),
Также не забываем про отдачу статики в dev-окружении и дописываем в этот же файл urls.py:
from django.conf.urls.static import static from django.conf import settings
if settings.DEBUG: urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Теперь когда все готово добавим наше поле в модель,
from ckeditor_uploader.fields import RichTextUploadingField class MyModel(models.Model):
body = RichTextUploadingField(config_name='default')
config_name=’default’ не обязательно писать.
пост ниочем.