Django Ckeditor Загрузка изображений - PullRequest
0 голосов
/ 22 февраля 2019

Я использую Django-ckeditor на своем веб-сайте.

Я особенно использую

RichTextUploadingField ()

в моей модели.и другой вариант просто отлично работает, кроме загрузки изображений.

1.Сообщение об ошибке

Я получаю сообщение об ошибке

«Неверный ответ сервера» и, особенно, 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


2.Угадайте

Я попытался загрузить изображения с помощью ckeditor на моей странице администратора,

авторизован в качестве суперпользователя в django, все работает.

Однако, войдя в систему под учетной записью обычного пользователя, я попробовал то же самое, но это не работает.

Так что я думаю, что у него какая-то проблема с авторизацией.Но я не могу понять, с чего начать отладку в моем django-ckeditor.

Какие вещи я должен проверять?Заранее спасибо.

1 Ответ

0 голосов
/ 23 февраля 2019

Это происходит потому, что URL-адреса по умолчанию украшены @staff_member_required (https://github.com/django-ckeditor/django-ckeditor/blob/master/ckeditor_uploader/urls.py). Чтобы избежать этого, вместо того, чтобы включать URL-адреса, подобные url(r'^ckeditor/', include('ckeditor_uploader.urls')), вы можете определить их по одному в вашем urls.py с помощьюlogin_required decorator:

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

Таким образом, вы ограничиваете загрузку для всех пользователей, которые вошли в систему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...