2013-12-21 5 views
0

Я использую grappelli в django, я хочу настроить текстовый редактор tinyMce, затем я обнаружил, что в каталоге grappelli есть tinyMce. Итак, я копирую tinymce_setup.js в каталог myproject и вношу некоторые изменения. Но он не работал на странице администратора. Вот мой код: классИспользование grappelli tinyMce в django не работает

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 не работали.!

+0

Не могли бы вы добавить трассировку для получения ошибки? – niekas

+0

Спасибо за ваш ответ. нет ошибки, работала страница администратора django, но похоже, что страница не использовала мой modifed tinymce_setup.js, она использовала grappelli собственный tinymce_setup.js. –

+0

@niekas i reedit вопрос, добавить два каталога ,. –

ответ

1

Я нахожу, что это проблема пути STATIC FILES. я получил sulotion об этом надстройкой MEDIA_ROOT в settings.py:

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',) 

в конце концов этот сервер. это сработало!

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 будет удален с версией 3.0 Граппелл, потому что TinyMCE версии 4.x поставляется с приличной кожей.

Смежные вопросы