У меня есть корень Django приложения на /var/project
и модель, определенную как это:Django зачем поднимать разрешение при сохранении FileField?
class Notice(models.Model):
title = models.CharField('title', max_length=80, default='', blank=True)
info = models.FileField("info", null=True, upload_to='app/files')
class NoticeForm(forms.ModelForm):
class Meta:
model = models.Notice
fields = ('title', 'info')
При сохранении info
полея, это всегда поднимает ошибку как:
Internal Server Error: /app/notice/update/9
PermissionError at /app/notice/update/9
[Errno 13] Permission denied: '/var/project/media/app/files/bm.py'
Я думаю, что настройки разрешения являются Годятся потому что:
а) я запустить приложение Django через uwsgi с помощью www-data
пользователей, как это:
[uwsgi]
uid = www-data
gid = www-data
chmod-socket = 666
chown-socket = www-data:www-data
б) папка СМИ:
(www)[email protected]:/var/project/media/app# ls -l
total 40
drwxr-xr-x 2 www-data www-data 36864 Jul 19 20:03 avatar
drw-rw-rw- 2 www-data www-data 4096 Jul 19 15:06 files
с) Nginx статической конф:
location /media {
alias /var/project/media;
}
location /static {
alias /var/project/static;
}
d) У меня есть другая модель, у которой есть поле tx = models.ImageField("tx",blank=True, null=True,upload_to='app/avatar')
и все re OK при сохранении этого поля.
Эта проблема беспокоит меня целый день. Какая проблема?