无法让 TinyMCE 在 django 管理中工作
Can't get the TinyMCE to work in django admin
我按照 here 中的说明将 TinyMCE 安装到 django 管理后端。
但它不起作用。检查控制台日志时,我看到了这个:
http://127.0.0.1:8000/media/js/tiny_mce/tiny_mce.js Failed to load
我需要手动添加js文件吗? github中的说明没有提到这一点。
更新
确实要让它工作,必须将 tiny_mce 移动到您的静态文件夹。
这是我对同样有类似问题的人的解决方案。
settins.py
STATIC_URL = '/static/'
STATIC_ROOT = ''
STATICFILES_DIRS = (
os.path.join(BASE_DIR, "static"),
)
#this is for localhost development, if you are in production enviroment, you will need to remove the STATICFILES_DIRS and define your STATIC_ROOT
TINYMCE_DEFAULT_CONFIG = {
'plugins' : "pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,wordcount,advlist,autosave,pagebreak",
'theme': "advanced",
'theme_advanced_buttons1' : "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,fontselect,fontsizeselect,fullscreen,code,|,preview,image,media",
'theme_advanced_buttons2' : "table,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,|,forecolor,backcolor, emotions,|,pagebreak,paste",
'theme_advanced_buttons3 ': "",
'theme_advanced_toolbar_location' : "top",
'theme_advanced_toolbar_align' : "left",
'width': '700',
'height': '400'
}
admin.py
class AdminPost(admin.ModelAdmin):
class Media:
js = ('/static/js/tiny_mce/tiny_mce.js',)
这个问题可能有 2 个原因。
1.) 您拥有所需的文件,但位于与脚本标记中指定的位置不同的位置。将脚本标记中的 url 更改为有效位置,它将起作用
2.) 您没有所需的文件。下载源文件,放在指定位置即可。
Django TinyMCE 将媒体 url 作为默认值,如您在文档中所见:
TINYMCE_JS_URL (default: settings.MEDIA_URL + 'js/tiny_mce/tiny_mce.js')
TINYMCE_JS_ROOT (default: settings.MEDIA_ROOT + 'js/tiny_mce')
如果您更喜欢使用静态文件夹中的静态文件,则必须将这些值设置为正确的路径。我建议:
TINYMCE_JS_URL = settings.STATIC_URL + 'js/tiny_mce/tiny_mce.js'
TINYMCE_JS_ROOT = settings.STATIC_ROOT + 'js/tiny_mce'
现在您必须确保在 STATICFILES_FINDERS 设置中使用 "django.contrib.staticfiles.finders.AppDirectoriesFinder",以便不必在开发环境中复制文件,并使用 collectstatic 进行收集。
你应该尝试:-
先卸载tinymce
pip 卸载 django-tinymce4
然后重新安装tinymce
对我有用
我按照 here 中的说明将 TinyMCE 安装到 django 管理后端。
但它不起作用。检查控制台日志时,我看到了这个:
http://127.0.0.1:8000/media/js/tiny_mce/tiny_mce.js Failed to load
我需要手动添加js文件吗? github中的说明没有提到这一点。
更新
确实要让它工作,必须将 tiny_mce 移动到您的静态文件夹。 这是我对同样有类似问题的人的解决方案。
settins.py
STATIC_URL = '/static/'
STATIC_ROOT = ''
STATICFILES_DIRS = (
os.path.join(BASE_DIR, "static"),
)
#this is for localhost development, if you are in production enviroment, you will need to remove the STATICFILES_DIRS and define your STATIC_ROOT
TINYMCE_DEFAULT_CONFIG = {
'plugins' : "pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,wordcount,advlist,autosave,pagebreak",
'theme': "advanced",
'theme_advanced_buttons1' : "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,fontselect,fontsizeselect,fullscreen,code,|,preview,image,media",
'theme_advanced_buttons2' : "table,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,|,forecolor,backcolor, emotions,|,pagebreak,paste",
'theme_advanced_buttons3 ': "",
'theme_advanced_toolbar_location' : "top",
'theme_advanced_toolbar_align' : "left",
'width': '700',
'height': '400'
}
admin.py
class AdminPost(admin.ModelAdmin):
class Media:
js = ('/static/js/tiny_mce/tiny_mce.js',)
这个问题可能有 2 个原因。
1.) 您拥有所需的文件,但位于与脚本标记中指定的位置不同的位置。将脚本标记中的 url 更改为有效位置,它将起作用
2.) 您没有所需的文件。下载源文件,放在指定位置即可。
Django TinyMCE 将媒体 url 作为默认值,如您在文档中所见:
TINYMCE_JS_URL (default: settings.MEDIA_URL + 'js/tiny_mce/tiny_mce.js')
TINYMCE_JS_ROOT (default: settings.MEDIA_ROOT + 'js/tiny_mce')
如果您更喜欢使用静态文件夹中的静态文件,则必须将这些值设置为正确的路径。我建议:
TINYMCE_JS_URL = settings.STATIC_URL + 'js/tiny_mce/tiny_mce.js'
TINYMCE_JS_ROOT = settings.STATIC_ROOT + 'js/tiny_mce'
现在您必须确保在 STATICFILES_FINDERS 设置中使用 "django.contrib.staticfiles.finders.AppDirectoriesFinder",以便不必在开发环境中复制文件,并使用 collectstatic 进行收集。
你应该尝试:-
先卸载tinymce
pip 卸载 django-tinymce4
然后重新安装tinymce
对我有用