我尝试安装CKeditor,但无法找到方法。
我试过的步骤
和
from ckeditor.fields import RichTextField
class MyModel(models.Model):
myfield = RichTextField()
当我向管理页面请求正确的模型时,我只能获得空白页面。 终端没有错误。 CKeditor文件返回302 HTTP。
我的管理页面的屏幕截图
很奇怪我可以在DOM上看到相关的ckeditor事情。 我错过了什么吗?
答案 0 :(得分:6)
我不知道你是否弄明白这一点。我花了3个小时的最佳时间让它为我工作。
我看到有一个404:
Quit the server with CTRL-BREAK.
[27/May/2018 13:50:02] "GET /admin/projects/blogproject/add/ HTTP/1.1" 200 9674
[27/May/2018 13:50:02] "GET /admin/jsi18n/ HTTP/1.1" 200 3185
[27/May/2018 13:50:04] "GET /static/ckeditor/ckeditorconfig.js?t=H8DA HTTP/1.1" 404 1709
[27/May/2018 13:50:05] "GET /static/ckeditor/ckeditorskins/moono-lisa/editor.css?t=H8DA HTTP/1.1" 404 1763
[27/May/2018 13:50:05] "GET /static/ckeditor/ckeditorlang/en.js?t=H8DA HTTP/1.1" 404 1712
[27/May/2018 13:52:35] "GET /admin/projects/blogproject/add/ HTTP/1.1" 200 9674
[27/May/2018 13:52:35] "GET /admin/jsi18n/ HTTP/1.1" 200 3185
[27/May/2018 13:52:37] "GET /static/ckeditor/ckeditorconfig.js?t=H8DA HTTP/1.1" 404 1709
[27/May/2018 13:52:38] "GET /static/ckeditor/ckeditorskins/moono-lisa/editor.css?t=H8DA HTTP/1.1" 404 1763
[27/May/2018 13:52:38] "GET /static/ckeditor/ckeditorlang/en.js?t=H8DA HTTP/1.1" 404 1712
改变了以下行:
CKEDITOR_BASEPATH = "/static/ckeditor/ckeditor"
to :(刚刚添加了一个斜杠)
CKEDITOR_BASEPATH = "/static/ckeditor/ckeditor/"
Widget现在可以在Admin中使用。
答案 1 :(得分:1)
问题在于静态文件的位置。实际上,服务器找不到呈现ckeditor小部件所需的静态文件。
简单的解决方案:
您需要将ckeditor包中静态文件夹的内容上传到项目的静态文件夹中(尽管是手动!)。
答案 2 :(得分:1)
我遇到了这个问题,原来我在STATIC_ROOT
中使用了CKEDITOR_BASEPATH
,因此重定向到:
staticfiles/ckeditor/ckeditor
(即服务器或硬盘驱动器上的静态文件夹,您使用collectstatic进行收集)
与浏览器无关。我通过使用STATIC_URL
并给出了地址来解决了这个问题:
/static/ckeditor/ckeditor/
(即网址)
答案 3 :(得分:0)
我认为您应该按照以下步骤操作:
pip install django-ckeditor
settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.sitemaps',
'app1',
'app2',
'crispy_forms',
'ckeditor_uploader',
'ckeditor',
]
...
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(os.path.dirname(BASE_DIR), "static")
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static'), ]
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(os.path.dirname(BASE_DIR), 'media')
CKEDITOR_CONFIGS = {
"default": {
"removePlugins": "stylesheetparser",
"allowedContent":True,
"width": "100%",
}
}
CKEDITOR_BASEPATH = "/static/ckeditor/ckeditor/"
CKEDITOR_UPLOAD_PATH = "uploads/"
CKEDITOR_FILENAME_GENERATOR = 'utils.get_filename'
X_FRAME_OPTIONS = 'SAMEORIGIN'
然后您应该在终端中运行以下代码:
python manage.py collectstatic
我的django-admin ss:
如果您在项目中进行了模型和模板设置,则不会出现错误。