2010年08月19日 星期四 15:58
按照Apress Practical Django Projects中的方式想在管理后台加入tinyMCE。
结果一直尝试就是失败。
始终没有看到change_form.html的变化
看Django官方的关于富文本的编辑器的问题,
http://code.djangoproject.com/wiki/AddWYSIWYGEditor
发现跟《PDP》里面讲的完全不同啊。
有没有谁有经验的?
2010年08月19日 星期四 16:13
没有看过《Apress Practical Django Projects》,具体问题是什么
2010年08月19日 星期四 16:19
它里面的方法是:使用了django.contrib.flatpages模块做一个小的cms,想在后台管理修改模型时使用富文本:
在urls.py里配置tinyMCE的路径,
(r'^tinymce/(?P<path>.*)$', 'django.views.static.serve', { 'document_root': 'D:\Python26\django\tinymce\jscripts\tiny_mce'}),
然后在项目cms下创建了
admin/flatpages/flatpage/change_form.html
change_form.html是拷自django.admin.templates里的
改动change_form.html在{{ media }}后加入下列代码:
<script type="text/javascript" src="\tiny_mce\tiny_mce.js"></script>
<script type="text/javascript">
tinyMCE.init({
mode: "textareas",
theme: "simple"
});
</script>
但是我做了,不起作用,网上使用富文本的方法都没有这么简单的。
2010年08月19日 星期四 16:25
但是也有一点跟书上不同(可能它是1.1,我的是1.0):
书中对于admin使用了:
(r'^admin/', include(admin.site.urls)),
而我用了默认的:
(r'^admin/(.*)', admin.site.root),
会在这里有问题么?
2010年08月19日 星期四 16:53
整合tinyMCE有现成的app可用。
可以参考我的开源博客,里面有admin的tinyMCE整合
http://code.google.com/p/dpress/
2010年08月19日 星期四 17:26
试试 <script type="text/javascript" src="/tiny_mce/tiny_mce.js"></script>
2010年08月20日 星期五 09:44
@夏武 试过了还是不行,这里有两个疑问:
1.admin里的修改页面的地址是http://127.0.0.1:8000/admin/flatpages/flatpage/1/
这个修改页面的表单用了哪个目录下的change_form.html模板?
2./tiny_mce/tiny_mce.js 这个文件(含相关文件)应该放在哪里?
2010年08月20日 星期五 10:38
@半尾
发现过小问题,你在urls.py中的配置是 r'^tinymce/(?P<path>.*)$', 而在模板中的引用为tiny_mce/tiny_mce.js。你看看实际的代码中是否有这个问题。
第一个问题,我没有用过,没时间实验,你查查文档看看
第二个问题,路径在那个没有关系,只要有访问权限就可以
2010年08月20日 星期五 11:43
@夏武 问题解决了,的确主要是tinymce的问题,总结一下您看看:
1.的确是tinymce这里应该是tiny_mce
2.admin里用到的模板同python的“.”搜索路径一样,
首先查找项目settings.py里指定的模板位置,例如
/templates/
在下面有如下目录,按此顺序查询:
/admin/flatpages/flatpage/change_form.html
/admin/flatpages/change_form.html
/admin/change_form.html
如果没有该文件(我把模板下以及django.contrib.admin下的change_form.html名字改掉了),提示的异常就可以看出来:
Exception Type: TemplateDoesNotExist
Exception Value: admin/flatpages/flatpage/change_form.html, dmin/flatpages/change_form.html, admin/change_form.html
然后,
如果找不到的话,就找django.contrib.admin下的change_form.html了
。
3.我想2给出的提示就是如何自定义admin管理界面的模板的方法了。(夏武,不知我说的对不对?)
4.基本的顺序就是:
管理面板修改里用到了change_form.html模板,然后调用了/tiny_mce/tiny_mce.js这个url来获取富文本编辑器,通过urls.py里设置的
(r'^tiny_mce/(?P<path>.*)$', 'django.views.static.serve', { 'document_root': '/path/to/tiny_mce'}),
#这里用到了django.views.static模块下的serve函数。
找到tiny_mce.js
2010年08月20日 星期五 11:56
@ 半尾
分析很到位
2010年08月21日 星期六 10:30
顶老夏和半尾,:D
2013年08月24日 星期六 13:29
你好,我也出现了同样的问题,想请教一下:
我下载的TineMCE解压后里面的目录名是tinymce而不是tiny_mce,所以我在urls.py里配置tinyMCE的路径是(r'^tinymce/(?P<path>.*)$', 'django.views.static.serve',
{ 'document_root': 'D:\ProgramFile\python2.7.4\tinymce\js\tinymce' })
但是在runserver后提示找不到路径,它将路径\t当成了制表符,可是在windows下此路径应该没错啊,难道要把文件名改掉?
2013年08月27日 星期二 09:17
最好使用 os.path.join(mydir, myfile),与独立于windows和linux下不同的路径格式
2013年08月27日 星期二 20:04
好的,谢谢,我回头试一下
2013年08月27日 星期二 20:52
多谢夏前辈哈,成功解决,就是路径问题,之前还有一点不确定的就是,我用的是新版的django,在执行
python manage.py startproject mysite后生成一个mysite文件夹,而在里面还有一个同名的mysite文件夹,和老版本的不一样,让我纠结了一段时间,现在搞清楚啦,多谢哈。。
Zeuux © 2024
京ICP备05028076号