在后台管理Django的model时,需要为TexeArea添加内容,为了支持样式,都是手敲的HTML标签,效率低下(虽然说可以使用markdown编辑完再黏贴进来)
下面介绍一下添加TinyMCE富文本编辑器:
(1)进官网下载,目前我下载的是最新的4.1.5,用的是Django1.6
(2)下载下来之后,找到tinymce,将整个文件夹copy到项目的/static/js/ 下,copy的内容如下:
接着,在 /static/js/ 下添加对于tinymce的配置文件textareas.js,目录结构,文件如下:
tinyMCE.init({ // General options mode : "textareas", // 注意,新版本不是advanced,而是modern theme : "modern", // 注意,具体的插件配置,参照/tinymce/plugins进行调整 plugins : "pagebreak,layer,table,save,autolink,emoticons,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,template,wordcount,advlist,autosave", // Example content CSS (should be your site CSS) //content_css : "/css/style.css", template_external_list_url : "lists/template_list.js", external_link_list_url : "lists/link_list.js", external_image_list_url : "lists/image_list.js", media_external_list_url : "lists/media_list.js", // Style formats style_formats : [ {title : 'Bold text', inline : 'strong'}, {title : 'Red text', inline : 'span', styles : {color : '#ff0000'}}, {title : 'Help', inline : 'strong', classes : 'help'}, {title : 'Table styles'}, {title : 'Table row 1', selector : 'tr', classes : 'tablerow'} ], width: '600', height: '600' });网上有很多教程都是老版本的,标注注意的地方要小心
最后,修改models.py中的内容,为Model 添加管理器,比如,我有一个类Article,自定义管理类Article_admin:
class Article(models.Model): title = models.CharField(max_length=64, null=False) content = models.TextField() summary = models.TextField(max_length=256, verbose_name='概述', default='') last_update_time = models.DateTimeField(auto_now=True) Blog = models.ForeignKey(Blog) def __unicode__(self): return self.title + " owned by :" + self.Blog.blog_name class Article_admin(admin.ModelAdmin): # 此处添加tinymce的脚本,前提是静态文件访问已经配置上去了 class Media: js = ( '/static/js/tinymce/tinymce.min.js', '/static/js/textareas.js', )
我这里显现的是中文,一般默认英文,需要到官网的download--》language中下载相应的语言包,然后把解压后的JS文件copy到/tinymce/langs/ 目录下
添加配置:
tinyMCE.init({ // General options language :'zh_CN', mode : "textareas", theme : "modern", ... }大功告成!