Ошибка CSRF token missing при загрузке фото в CKEditor

Рейтинг: -1Ответов: 1Опубликовано: 09.02.2023

Всем привет. Подскажите, настроил Django CKEditor для flatpages. Редактор работает, а фото загружать не хочет. Ругается на CSRF токен. Ошибка происходит при попытке загрузить файл.

Ошибка: [09/Feb/2023 12:10:40] "POST /ckeditor/upload/ HTTP/1.1" 403 2506 Forbidden (CSRF token missing.): /ckeditor/upload/

Настройки settings.py:

CKEDITOR_JQUERY_URL = 'https://ajax.googleapis.com/ajax/libs/jquery/3.6.3/jquery.min.js'
CKEDITOR_UPLOAD_PATH = '/ckeditor/upload/'
CKEDITOR_IMAGE_BACKEND = 'pillow'

CKEDITOR_CONFIGS = {
 'default': {
 'toolbar': 'Full',
 'height': 500,
 'width': 900,
 'extraPlugins':'codesnippet',
 },
}

urls.py:

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('main.urls')),
    path('', include('django.contrib.flatpages.urls')),
    path('ckeditor/', include('ckeditor_uploader.urls')),
]

if settings.DEBUG:
    urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

введите сюда описание изображения

Ответы

▲ 0Принят

Вам в форму в шаблоне где вы загружаете картинку надо добавить {% csrf_token %}

Это сделано для безопасности от самого Django чтобы никто не смог кроме вас и вашего сайта добавить к вам данные

Всё это должно выглядеть так:

<form action="">
  {% csrf_token %}
</form>