Django开发者群  - 讨论区

标题:Django中使用富文本编辑tinyMCE失败

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哲思注册吗?现在 注册 !

    Zeuux © 2024

    京ICP备05028076号