0
私は/var/project
でDjangoアプリケーションのルートを持っているし、このように定義モデル:info
フィールドを保存するとき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')
、それはいつものようにエラーを発生させる:
Internal Server Error: /app/notice/update/9
PermissionError at /app/notice/update/9
[Errno 13] Permission denied: '/var/project/media/app/files/bm.py'
私はパーミッション設定がO.K.いると思います理由:
A)私はこのようなwww-data
ユーザーを経由してuwsgiを経由してDjangoのアプリを実行します。
[uwsgi]
uid = www-data
gid = www-data
chmod-socket = 666
chown-socket = www-data:www-data
b)のメディアフォルダ:
(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
C)nginxの静的CONF:
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')
であり、すべてがこのフィールドを保存するときは再確認してください。
この問題は1日中気になります。何が問題なの?