Django|Tinymce rich text editor in Django
http://tinymce.moxiecode.com/dump.php?example=true
前几天搭好的0.0.1版是纯文本化的,除非自己手动<b></b>才能显示粗体。因此得安装一个富文框是必须的。
我打算用TinyMCE,它是一个非常流行的富文本编辑器,100% JavaScript,WordPress也是用它的,所以理所当然就选择TinyMCE了。
参考了Django网站上的AddWYSIWYGEditor - Django Code - Trac,搞了很久都不成功,也失败。
只好在论坛请教,得到了详细的帮助。终于搞成功了。记录一下!
―-
帖子在这里: How to enable the rich editor in Django?
Michael很热心,给我回复了这么多。真是非常感谢他!
首先,根据Michael的意见,尽量使所有自己加入的media都不与系统默认的admin media相关联,即自己设定一个新目录来放media,不要放在系统目录里,方便布署。
所以,我把tiny_mce安装在工程目录下的mymedia/js这个文件夹下,并新建一个文件textareas.js,作为tiny_mce的配置文件:
tinyMCE.init({
mode : "textareas",
theme : "advanced"
});
然后,在工程根目录的urlpatterns中,加一个url即可:
(r'^media/(?P<path>.*)$', 'django.views.static.serve',
{'document_root': './mymedia'}),
最后,在所有你想将TextField用Tiny_MCE来编辑的Models里,加入:
class Admin:
js = (
'/media/js/tiny_mce/tiny_mce.js',
'/media/js/textareas.js',
)
这里需要注意,虽然上面urlpattern中我指定了"文档根目录"是./mymedia,但是在Models中设定路径,依旧是/media/,而非mymedia。似乎这个/media/只是一个变量,就是因为这个我搞了很久。
弄好以后,管理后台不会因为新设定的mymedia而受影响,新的mymedia只是一个附加品吧。看截图:
关于Django的其他补充:
- Django的API还真太会break了,网上很多人说建议使用最新的svn版也就是这个原因了。0.96版定义CharFiled的长度是用maxlength,到了0.97(还未发布)就是用max_length了。
- Google Code上有很多用Django搞的开源项目,当然也包括很多Blog系统,这样我就有很多可以参考和学习的例子了。其中有个国人写的fallever非常不错,他本人的主页http://www.fallever.com也是用fallever搭的,学习的对象。
- 国内也有Python的主机可以买,似乎不是很贵。其中jeff(fallever的作者)就是买这个"浪点主机",以后我也可以考虑一下,还能支持SSH,国内的应该很快。
No comments:
Post a Comment