Создание блога на Django 1.8. Шаг 2 Подключаем визуальный редактор (tinimce и ckeditor) к блогу на Django 1.8 http://youtu.be/wz95Gd6INWc Сначала я подключил редактор tinymce, но не смог разобраться, как в нем сделать загрузку картинок на сервер. Поэтому потом убрал его и подключил ckeditor (в котором эта возможность есть). Сначала выполняем: pip install django-tinymce Добавляем 'tinymce' в settings.py

INSTALLED_APPS = (
    ...
    'tinymce',
)
Потом в файле urls.py проекта добавляем строку url(r'^tinymce/', include('tinymce.urls')),
urlpatterns = patterns('',
    ...
    url(r'^tinymce/', include('tinymce.urls')),
)
В models.py заменяем models.TextField на HTMLField
from tinymce.models import HTMLField
class Article(models.Model):
    ...
    summary = HTMLField(blank=True, default='')
    content = HTMLField(blank=True, default='')
Если зайти в админку, мы увидем чть tinymce заработал с настройками по умолчанию. Теперь можно добавить больше функционала. Добавляем этот код в settings.py
TINYMCE_DEFAULT_CONFIG = {
    'plugins': "table,spellchecker,paste,searchreplace",
    'theme': "advanced",
    'cleanup_on_startup': True,
    'custom_undo_redo_levels': 10,
}
TINYMCE_SPELLCHECKER = True
TINYMCE_COMPRESSOR = True
Редактор заработал (на локальном сервере). На хостинге нужно будет запускать collectstatic и настраивать STATIC_ROOT Картинки можно загружать вручную на сервер а потом прописывать путь. Теперь отключу tinymce и подключу ckeditor Для этого нужно выполнить pip install django-ckeditor Добавить ckeditor и ckeditor_uploader в INSTALLED_APPS
INSTALLED_APPS = (
    ...
    'ckeditor',     'ckeditor_uploader',)
Также в settings.py добавим
MEDIA_ROOT = 'media/'
MEDIA_URL = '/media/'
CKEDITOR_UPLOAD_PATH = 'uploads/'
В blog_project\urls.py добавим url(r'^ckeditor/', include('ckeditor_uploader.urls')),
from django.conf.urls.static import static
from blog_project import settings
urlpatterns = [
    ...
    url(r'^ckeditor/', include('ckeditor_uploader.urls')),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Создаем каталог blog_project\media\uploads для загрузки файлов. В models.py заменяем models.TextField на RichTextUploadingField
from ckeditor_uploader.fields import RichTextUploadingField
class Article(models.Model):
    ...
    summary = RichTextUploadingField(blank=True, default='')
    content = RichTextUploadingField(blank=True, default='')
Запускаем, на всякий случай, makemigration и migrate Потом collectstatic, который копирует нужные файлы ckeditor-а в каталог static Работает! На следующем шаге загружу блог на хостинг. Создание блога на Django 1.8. Шаг 1
7 Ноябрь 2015, 22:17 0 Petr_Kashyapov
blog comments powered by Disqus