Django管理界面中集成TinyMCE编辑器

7
这很奇怪:我已经安装并配置了django-tinymce,但它似乎不能与django admin一起使用。
这在Safari中运行良好:
class ArticleAdmin(admin.ModelAdmin):
    formfield_overrides = {
        models.TextField: {'widget': TinyMCE(attrs={'cols': 80, 'rows': 20}, )},
    }

但是在火狐浏览器中无法正常工作。

仅仅添加js代码也不能在任何一个浏览器中正常工作:

class Media:
    js = ['/media/js/tiny_mce/tiny_mce.js']

我尝试了各种路径的组合:带/不带前导斜杠,带/不带“media”位,甚至是绝对绝对的http://localhost:8008/...但是都没有成功。
然而,使用grappelli自己的tinymce在firefox和safari中都可以工作(在tinymce_config.js中添加safari后)。您有什么想法出了问题吗?
使用Django 1.1,django-grappelli 2rc,django-tinymce 1.5,FF 3.5,Safari 4在MacOS X 10.5上。

1
以下代码需要导入以下模块:from tinymce.widgets import TinyMCE, from django.db import models - panchicore
可能检查Firebug控制台的输出会给你一些提示。当TinyMCE语言包加载失败时,我也遇到了类似的问题。另外,如前面的评论所提到的,请确保你从django.db导入models,而不是从你的应用程序中导入。 - zag
4个回答

3

1

js 的正确路径是 'js/tiny_mec/tiny_mce.js',顺便问一下,如果你正在使用开发服务器,你是否正在使用 Web 服务器提供静态文件呢?


1
是的,我已经设置了开发服务器来提供我的静态文件。我发现grappelli可能会与在简单模式下运行的tiny_mce发生冲突。将其设置为高级模式有所帮助,但最终我决定切换到grappelli的自定义tiny_mce。 - Andy

1

0

试试这个:

from tinymce.widgets import TinyMCE

class ArticleForm(forms.ModelForm):
    formfield_overrides = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 20}))

    class Meta:
        model = Article

class ArticleAdmin(admin.ModelAdmin):
    ......
    form = ArticleForm

    class Admin:
        js = ('js/tiny_mce/tiny_mce.js',
            'js/tiny_mce/textareas.js',
        )

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接