Я пытался реализовать решение, данное Виталием Пономаром.
Я выбрал NicEdit , потому что это были только два файла javascript (nicEdit.js
и nicEditorIcons.gif
), которые я поместил в свою папку /media/js/
и не требует изменения типов полей в модели (Я видел в Документация TinyMCE , в которой требуется изменить поле на тип HTMLField, и я не хотел ничего менять в базе данных).
Я положил в модель:
class NewsAdmin(admin.ModelAdmin):
list_display = ('title','lead','date')
class Media:
js = ('/media/js/nicEdit.js', '/media/js/textarea_content.js')
admin.site.register(News, NewsAdmin)
Файл textarea_content.js
, который я помещаю в папку /media/js/
, также используется для инициализации определенной текстовой области с некоторыми определенными кнопками:
bkLib.onDomLoaded(function() {
nicEditors.editors.push(
new nicEditor({iconsPath : '/media/js/nicEditorIcons.gif',
buttonList : ['fontSize','fontFamily','bold','italic',
'underline','strikeThrough','left','center','right','justify',
'ol','ul','subscript','superscript','hr','link','unlink','forecolor']
}).panelInstance(
document.getElementById('id_content')
)
);
});
Однако, если вы планируете использовать его для всех текстовых областей, вы можете использовать bkLib.onDomLoaded(nicEditors.allTextAreas);
вместо приведенного выше кода.
Наконец, будьте осторожны с разрешениями (когда я впервые попробовал в рабочей среде, мои файлы javascript были недоступны из-за разрешений).