在django中使用grappelli tinyMce不起作用

时间:2013-12-21 15:20:56

标签: django tinymce

我在django中使用grappelli,我想通过tinyMce自定义文本编辑器,然后我发现grappelli目录中有tinyMce。 所以我将tinymce_setup.js复制到myproject目录并进行一些修改。但它在管理页面中不起作用。 这是我的代码:class

class BlogPostAdmin(admin.ModelAdmin):
    list_display=('title','content','timestamp','slug')
    prepopulated_fields = {"slug": ("title",)}
    search_fields = ('title', 'content')
    formfield_overrides = {
        models.TextField: {'widget': forms.Textarea(attrs={'class': 'mceEditor', 'rows': '50'})},
    }
    fieldsets = [
        ('文章编辑', {'fields': ('title', 'slug', 'content',)}),
        ('日期', {'fields': ('timestamp', )}),
    ]
    class Media:
        js = ('/static/grappelli/tinymce/jscripts/tiny_mce/tiny_mce.js',
            '/static/grappelli/tinymce_setup/tinymce_setup.js',)

我发现tinymce_setup.js总是直接指向grappelli目录。谁能告诉我为什么?

grappelli拥有tinymce_setup.js目录:

/usr/local/lib/python2.7/dist-packages/grappelli/static/

我的项目tinymce_setup.js目录:

/home/jacob/study/django/mysite/static/

看起来我自己的tinymce_setup.js目录无效。!

2 个答案:

答案 0 :(得分:1)

我发现这是STATIC FILES路径的问题。 我对此深有体会 在settings.py中添加MEDIA_ROOT:

MEDIA_ROOT=os.path.join(BASE_DIR,STATIC_URL.replace("/",""))

然后和STATICFILES_DIRS

STATICFILES_DIRS=(
    MEDIA_ROOT,
)

ModelAdmin中的媒体类喜欢这个:

class Media:
        js = ('/static/grappelli/tinymce/jscripts/tiny_mce/tiny_mce.js',
            '/static/grappelli/js/tinymce_setup/tinymce_setup.js',)

在所有这个runserver之后。它有效!

答案 1 :(得分:0)

Grappeli文档中描述了所有内容:http://django-grappelli.readthedocs.io/en/latest/customization.html#using-tinymce

  

Grappelli已经附带了TinyMCE和最小的主题。要使用TinyMCE,请将tinymce_setup.js复制到静态目录,调整设置(请参阅TinyMCE配置)并将必要的javascripts添加到ModelAdmin定义中(请参阅ModelAdmin资产定义):

class Media:
    js = [
        '/static/grappelli/tinymce/jscripts/tiny_mce/tiny_mce.js',
        '/static/path/to/your/tinymce_setup.js',
    ]
  

由于隐藏,使用TinyMCE与内联有点棘手   额外的内联。您需要编写自定义模板并使用内联   回调

onInit: remove TinyMCE instances from the empty form.
onAfterAdded: initialize TinyMCE instance(s) from the form.
onBeforeRemoved: remove TinyMCE instance(s) from the form.
Note
  

默认情况下不支持带有内联的TinyMCE。如果我们的版本   TinyMCE不适合您的需求,为您添加不同的版本   静态目录并更改上面提到的ModelAdmin设置   (js文件的路径)。

     

警告

     

TinyMCE将与Grappelli 3.0版一起删除,因为TinyMCE   版本4.x带有不错的皮肤。