Django与tinymce
我刚开始学习Django,正在参考James Bennett的Django指南。
现在我已经看到第42页了,我需要把tinymce这个工具放进change_form.html里。所以我添加了以下几行代码:
(r'^admin/', include(admin.site.urls)),
(r'^tiny_mce/(?P<path>.*)$', 'django.views.static.serve',
{ 'document_root': 'C:/www/tinymce/jscripts/tiny_mce/' }),
(r'', include('django.contrib.flatpages.urls')),
url(r'^admin/', include(admin.site.urls)),
(r'', include('django.contrib.flatpages.urls')),
这是我的模板定义:
TEMPLATE_DIRS = (
"C:/www/django/templates"
)
我在我的模板目录里创建了几个文件夹:
C:\www\django\templates\admin\flatpage\flatpages
我把JavaScript代码加到了change_form.html里:
<script type="text/javascript" src="/tiny_mce/tiny_mce.js"></script>
<script type="text/javascript">
tinyMCE.init({
mode: "textareas",
theme: "simple"
});
</script>
但是在我的编辑页面上,还是没有看到任何富文本编辑器的选项。有没有人遇到过这个问题?
2 个回答
你确定 tiny_mce.js 这个文件已经加载了吗?可以试着查看一下网页的源代码,找到 tiny_mce.js 的链接。
https://code.djangoproject.com/wiki/AddWYSIWYGEditor
看看第三条。
在你运行项目的时候,终端日志里有没有出现 404 错误
?这可能是因为 tinymce 的 JavaScript 没有加载成功。
确保你的 urls.py
文件允许加载静态文件和媒体内容。如果这是问题所在,可以尝试下面这种写法:
if settings.DEBUG:
urlpatterns += patterns('',
(r'^media/(?P<path>.*)$',
'django.views.static.serve',
{'document_root': settings.MEDIA_ROOT, 'show_indexes': True, }),
(r'^static/(?P<path>.*)$',
'django.views.static.serve',
{'document_root': settings.STATIC_ROOT, 'show_indexes': True, }),
)
接下来,你可能需要把 <script type="text/javascript" src="/tiny_mce/tiny_mce.js"></script>
改成 <script type="text/javascript" src="{{ STATIC_URL }}/tiny_mce/tiny_mce.js"></script>
。你用的书没有考虑到静态文件的处理,因为这是 Django 1.3 之后的新特性。如果你用的是 Django 1.3,那就用静态文件的方式;如果你还是按照书上的内容,使用的是低于 1.3 的版本,那就全用 MEDIA_URL。
关于你用的那本书,我也遇到了一些问题(代码不正确或过时)。这里有一些链接,可以帮助你在学习过程中解决问题。