Здебільшого сайту я використовую самописний WYSIWYG редактор, тому він не такий просунутий як хотілося б. А ось для написання статей на сайті, використовується CKEditor, дуже потужний і хороший редактор. Нюанс у тому, що написання статей є доступним для всіх зареєстрованих користувачів сайту. Але за умовчанням CKEditor дозволяє завантажувати зображення лише користувачам із статусом персоналу.
Для всіх інших користувачів відкриватиметься або сторінка з помилкою, або головна сторінка сайту замість файлового менеджера для пошуку зображень або завантаженого зображення.
Трохи погортавши документацію, вдалося виправити цю проблему. І чесно кажучи виглядає рішення досить дивно, хоч і пропонується в офіційній документації на редактор.
Суть у тому, що зазвичай для модуля завантаження зображень urls підключаються так.
urlpatterns = [ url(r'^ckeditor/', include('ckeditor_uploader.urls')), ]
А якщо зазирнути у вихідні джерела ckeditor , то можна побачити наступне
urlpatterns = patterns( '', url(r'^upload/', staff_member_required(views.upload), name='ckeditor_upload'), url(r'^browse/', never_cache(staff_member_required(views.browse)), name='ckeditor_browse'), )
Так ось функція staff_member_required , як ви вже зрозуміли, обмежує доступ користувачів до даного функціоналу. Тобто лише персонал може завантажувати зображення та шукати зображення через файловий браузер на сайті.
І що нам пропонує офіційна документація замість якогось прапора налаштувань?
Правильно, записати напряму шляху до хурделя, тобто таким чином.
urlpatterns = [ url(r'^upload/', login_required(upload), name='ckeditor_upload'), url(r'^browse/', login_required(never_cache(browse)), name='ckeditor_browse'), ]
Тобто викидаємо staff_member_required та замінюємо його на login_required, щоб дати доступ усім користувачам сайту, крім неавторизованих.
На мою думку, досить дивне рішення, коли це можна було зробити за допомогою змінної в налаштуваннях. Це трохи незручно і нелогічно.
Для Django рекомендую VDS-сервера хостера Timeweb .
Ай малаца! Спасибо))
Здравстсвуйте Евгений, непонятно мне где эти исходники найти?
Добрый день.
На GitHub исходники, можете посмотреть в официальном репозитории
Спасибо!!!