Для того, чтобы в админке подключить WYSIWYG-редактор TinyMCE необходимо проделать следующие операции.
-
Скачиваем сам редактор TinyMCE: http://www.tinymce.com/download/download.php и заливаем на сервер (со стороннего url работать не будет).
-
Устанавливаем django-tinymce (обязательно должен быть версии 1.5.1a2 или выше, в стабильной на момент написания статьи версии 1.5 он имеет баг, из-за которого не хочет работать без напильника):
pip install django-tinymce
- В settings.py вашего проекта записываем записываем следующие переменные:
TINYMCE_JS_URL = 'tiny_mce/tiny_mce.js'
TINYMCE_JS_ROOT = 'tiny_mce'
TINYMCE_DEFAULT_CONFIG = {'theme': "advanced", 'theme_advanced_toolbar_location' : "top", 'height': '400'}
TINYMCE_JS_URL
- путь к tiny_mce.js - например, http://mysite.com/tinymce/tiny_mce.js (крайне желательно писать без домена, он здесь дан только для того, чтобы было понятно, относительно чего происходит запрос)
TINYMCE_JS_ROOT
- путь к корневой папке, где лежит tiny_mce.js - например, http://mysite.com/tinymce/ (крайне желательно писать без домена)
TINYMCE_DEFAULT_CONFIG
- конфигурация по умолчанию, подробности см. в официальной документации TinyMCE.
Также, в INSTALLED_APPS
надо дописать 'tinymce'
:
INSTALLED_APPS = (
...
'tinymce',
...
)
- В модель, в которой хотим включить редактор TinyMCE импортируем tinymce:
from tinymce import models as tinymce_models
Для самого класса модели пишем следующее
class MyModel(models.Model):
myField = tinymce_model.HTMLField()
Т.е. мы заменяем models.TextField()
на tinymce_model.HTMLField()
в необходимых местах.
- В urls.py проекта добавляем
(r'^tinymce/',include('tinymce.urls'))
:
urlpatterns = patterns('myproject.views',
...
(r'^tinymce/', include('tinymce.urls')),
(r'^admin/', include(admin.site.urls)),
)
Источники:
1. http://seobacks.ru/tinymce-django.html
2. http://django-tinymce.googlecode.com/svn/tags/release-1.5/docs/.build/html/index.html