带有CKEditor的Django 2.0.1在管理页面上不起作用

时间:2018-02-28 01:58:34

标签: python django static ckeditor

我尝试安装CKeditor,但无法找到方法。

我试过的步骤

  • pip install django-ckeditor
  • 将'ckeditor'添加到您的INSTALLED_APPS设置。
  • 运行collectstatic
  • CKEDITOR_BASEPATH =“/ static / ckeditor / ckeditor”到我的设置

from ckeditor.fields import RichTextField

class MyModel(models.Model):
    myfield = RichTextField()

当我向管理页面请求正确的模型时,我只能获得空白页面。 终端没有错误。 CKeditor文件返回302 HTTP。

我的管理页面的屏幕截图

Screenshot from my admin page

很奇怪我可以在DOM上看到相关的ckeditor事情。 我错过了什么吗?

4 个答案:

答案 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:

enter image description here

如果您在项目中进行了模型和模板设置,则不会出现错误。