Django admin + TinyMCE без сторонних виджетов

Как прикрутить TinyMCE к Django admin, без сторонних виджетов и использовать его только в нужных полях ввода?

Оказывается не сложно. И не нужны для этого всякие django-tinymce.

Достаточно правильно установить и настроить сам WYSIWYG редактор, а за тем правильно оформить виджеты админки на требуемые поля ввода.

 

Настраиваем TinyMce в нашем базовом шаблоне админки 

<!-- TinyMCE -->
    <script type="text/javascript" src="/static/js/tiny_mce/tiny_mce.js"></script>
    <script type="text/javascript">
       tinyMCE.init({
         // General options
         language : 'ru',
         mode : "specific_textareas",
         editor_selector : "mceEditor", //На какой css класс будет TinyMCE отображаться
         theme : "advanced",
         plugins : "style,paste,advhr,advimage,advlink",

         // Theme options
         theme_advanced_buttons1 :"bold,italic,underline,strikethrough,|,justifyleft,justifycenter,
                                                       justifyright,justifyfull,styleprops,formatselect,fontselect,fontsizeselect,|,
                                                       forecolor,backcolor,|,charmap,advhr",
         theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,
                                                       bullist,numlist,|,outdent,indent,blockquote,|,
                                                       undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,
                                                       hr,removeformat,visualaid,|,sub,sup"
,
         theme_advanced_buttons3 : "", //Делаем две строки кнопок в шапке редактора
         theme_advanced_toolbar_location : "top",
         theme_advanced_toolbar_align : "left",
         theme_advanced_statusbar_location : "bottom",
         theme_advanced_resizing : true,

      });
    </script>
<!-- End TinyMCE -->

 

Настраиваем наш models.py

 

class /# класс модели #/(models.Model):
        ...


class /# класс модели #/Admin(admin.ModelAdmin):
        ...
        formfield_overrides = {
                                            models.TextField: {'widget': forms.Textarea(attrs={'class':'mceEditor'})},
                                          }  

admin.site.register(/# класс модели #/, /# класс модели #/Admin)

 

 

После этих манипуляций TinyMce работает там где мне надо и не портит мне нервы. :o)

 

05.10.2011 15:01  Ключевые словаdjango , TinyMCE , WYSIWYG

Автор блога создает, продвигает и поддерживает сайты для бизнеса

  • Быстрая и качественная разработка сайтов/приложений
  • Качественная и продуманная SEO подготовка
  • Продвижение через Яндекс.Директ и Гугл.Адвордс


Комментарии: [8]

15:49 19.06.2014  owlman

Согласен на все 100%: Бесполезно когда не знаешь "В нашем базовом шаблоне админки"
Пост написан для Джанговодов, а они обычно смотрят документацию по джанге. Ведь там все есть.

15:12 19.06.2014  Гость

Наверно круто, только абсолютно безполезно когда не знаешь что такое "в нашем базовом шаблоне админки" где надо положить TinyMCE чтоб сработал "/static/js/tiny_mce/tiny_mce.js", и почему в архиве что я скачал с tinymce.com нет директорий "tiny_mce", только "tinymce", как и нбет файла "tiny_mce.js" только "tinymce.min.js"

11:49 10.04.2013  Игорь

сам редактор не отображается, хотя класс mceEditor приклеился

13:34 02.03.2013  owlman

Нет. не сталкивался.

12:29 02.03.2013  Гость

Вы, случайно не сталкивались с привязкой django-filebrowser-no-grappelli к Tiny? У меня чего-то не получается. Иконка не появляется, ошибок не выдает никаих.

22:51 01.03.2013  owlman

У меня такого не случается.
Может в моделях чего не так?

21:49 01.03.2013  Гость

А нет, base.html.
Всё заработало, один только момент, после добавления в модель строки formfield_overrides = {models.TextField: {'widget': forms.Textarea(attrs={'class':'mceEditor'})},} текстовое поле становится в несколько раз меньше (даже если не загрузился js). Как это пофиксить? Еще раз спасибо!

20:56 01.03.2013  Гость

Спасибо за статью!
А базовый шаблон админки - это base_site.html?


Добавить комментарий

Внимание! HTML код и ссылки в комментариях отключены.
Комментарии содержащие ссылки, публикуются после модерации.
Имя:


e-mail:



Комментарий:
 

  
   
Λ