Я разместил свой проект python + django на pythonanywhere.com и столкнулся с проблемой, когда хочу сохранить элемент с изображением. Все остальные поля item сохраняются, а изображение нет.
Вот и вся ошибка:
PermissionError at /admin/core/bike/add/
[Errno 13] Permission denied: '/home/omega/resizedComm/media_root/bikes/xx.png'
Мои настройки:
STATIC_URL = '/static/'
MEDIA_URL = '/media/'
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static_in_env')]
STATIC_ROOT = os.path.join(BASE_DIR, 'static_root')
MEDIA_ROOT = os.path.join(BASE_DIR, 'media_root')
Что может быть причиной этой ошибки?
Итак, когда я меняю MEDIA_ROOT на другой путь, он действительно работает (он создает папку и загружает туда изображения), но происходит сбой, когда я пытаюсь сохранить изображение в исходном media_root. Есть идеи?
@Matthias Матиас, я не очень понимаю вопрос, ты имеешь в виду, как суперпользователь? Когда я запускаю приложение на локальном хосте, все работает нормально.
@OmletteDuFromage У вас есть доступ к вашим файлам на сервере?
@ParantapParashar хорошо, я могу получить доступ к файлам с панели pythonanywhere, должен ли я предоставлять доступ где-то еще?
Каков результат ls -ld /home/omega/resizedComm/media_root/bikes?
@DannyStaple это говорит dr-xr-xr-x 2 omega registered_users 4096 Jun 19 21:54






Ваша ошибка и вывод ls предполагают, что папка, в которую вы пытаетесь записать, не имеет прав на запись.
Либо вручную, либо с помощью кода вам нужно будет предоставить права на запись. Если ваш код работает как омега, то chmod u+w <folder path> должен это делать. В питоне это должен делать chmod с числовым кодом 755.
import os
os.chmod(<folder path>, 755)
chmod u+w <folder path> сработало, спасибо
Имеет ли пользователь, с которым работает ваш скрипт, доступ на запись к
'/home/omega/resizedComm/media_root/bikes/?