Создание блога на Django 1.8. Шаг 2
Подключаем визуальный редактор (tinimce и ckeditor) к блогу на Django 1.8
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
Работает!
На следующем шаге загружу блог на хостинг.