我在网站上使用Django-ckeditor。
我特别使用
RichTextUploadingField()
在我的模型中。和其他选项都可以正常工作,除了图片上传。
我收到
的错误消息“服务器响应不正确”,尤其是chrome devtools指出
ckeditor.js:21 [CKEDITOR]错误代码:filetools-response-error。
ckeditor.js:21 [CKEDITOR]有关此错误的更多信息,请转到https://docs.ckeditor.com/ckeditor4/docs/#!/guide/dev_errors-section-filetools-response-error
我已尝试在管理页面中使用ckeditor上传图像,
在django中被授权为超级用户,它可以工作。
但是,以普通用户帐户登录,我已经尝试过相同的操作,但是它不起作用。
所以我的猜测是它存在某种授权问题。但是我不知道在django-ckeditor中从哪里开始调试。
我应该检查什么?预先感谢。
答案 0 :(得分:1)
在项目 urls.py 中添加以下导入:
from django.contrib.auth.decorators import login_required
from django.views.decorators.cache import never_cache
from ckeditor_uploader import views as ckeditor_views
替换 urls.py 中的以下行:
path('ckeditor/', include('ckeditor_uploader.urls')),
与
path('ckeditor/upload/', login_required(ckeditor_views.upload), name='ckeditor_upload'),
path('ckeditor/browse/', never_cache(login_required(ckeditor_views.browse)), name='ckeditor_browse'),
答案 1 :(得分:0)
之所以发生这种情况,是因为默认的URL用@staff_member_required(https://github.com/django-ckeditor/django-ckeditor/blob/master/ckeditor_uploader/urls.py)修饰。为了避免这种情况,您可以像这样url(r'^ckeditor/', include('ckeditor_uploader.urls'))
那样包含网址,而无需使用login_required装饰器在urls.py中一个接一个地定义它们:
from django.conf.urls import url
from django.contrib.admin.views.decorators import login_required
from ckeditor_uploader import views
urlpatterns = [
.....your other urls
url(r'^ckeditor/upload/', login_requred(views.upload), name='ckeditor_upload'),
url(r'^ckeditor/browse/', never_cache(login_requred(views.browse)), name='ckeditor_browse'),
]
像这样,您将上传内容限制为已登录的所有用户。
答案 2 :(得分:0)
如果您以管理员身份登录(localhost:8000/admin),它就可以工作,很简单。