据我所知,我的Django站点是实时的,除了当用户试图上传配置文件图像时,所有操作都是正确的:
OSError at /user/1/edit
[Errno 13] Permission denied: '/home/django/django_project/media/profile_pics/Square.jpg'我以前从没见过这个所以我不知道该怎么做.
这是回溯:
Traceback Switch to copy-and-paste view
/usr/local/lib/python2.7/dist-packages/django/core/handlers/exception.py in inner
response = get_response(request) ...
▶ Local vars
/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py in _legacy_get_response
response = self._get_response(request) ...
▶ Local vars
/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py in _get_response
response = self.process_exception_by_middleware(e, request) ...
▶ Local vars
/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs) ...
▶ Local vars
/usr/local/lib/python2.7/dist-packages/django/views/generic/base.py in view
return self.dispatch(request, *args, **kwargs) ...
▶ Local vars
/usr/local/lib/python2.7/dist-packages/django/contrib/auth/mixins.py in dispatch
return super(LoginRequiredMixin, self).dispatch(request, *args, **kwargs) ...
▶ Local vars
/usr/local/lib/python2.7/dist-packages/django/views/generic/base.py in dispatch
return handler(request, *args, **kwargs) ...
▶ Local vars
/usr/local/lib/python2.7/dist-packages/django/views/generic/edit.py in post
return super(BaseUpdateView, self).post(request, *args, **kwargs) ...
▶ Local vars
/usr/local/lib/python2.7/dist-packages/django/views/generic/edit.py in post
return self.form_valid(form) ...
▶ Local vars
/usr/local/lib/python2.7/dist-packages/django/views/generic/edit.py in form_valid
self.object = form.save() ...
▶ Local vars
/usr/local/lib/python2.7/dist-packages/django/forms/models.py in save
self.instance.save() ...
▶ Local vars
/usr/local/lib/python2.7/dist-packages/django/db/models/base.py in save
force_update=force_update, update_fields=update_fields) ...
▶ Local vars
/usr/local/lib/python2.7/dist-packages/django/db/models/base.py in save_base
updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields) ...
▶ Local vars
/usr/local/lib/python2.7/dist-packages/django/db/models/base.py in _save_table
for f in non_pks] ...
▶ Local vars
/usr/local/lib/python2.7/dist-packages/django/db/models/fields/files.py in pre_save
file.save(file.name, file.file, save=False) ...
▶ Local vars
/usr/local/lib/python2.7/dist-packages/django/db/models/fields/files.py in save
self.name = self.storage.save(name, content, max_length=self.field.max_length) ...
▶ Local vars
/usr/local/lib/python2.7/dist-packages/django/core/files/storage.py in save
return self._save(name, content) ...
▶ Local vars
/usr/local/lib/python2.7/dist-packages/django/core/files/storage.py in _save
fd = os.open(full_path, flags, 0o666) ...
▶ Local vars更新:当用户试图将post中的图像上传到post提要时也会发生此错误,但是它指向媒体文件夹中的post_pics而不是profile_pic文件夹,就像它在此错误中所做的那样。
发布于 2017-09-27 16:19:21
更改/media目录的权限。
sudo chmod a+rw media发布于 2017-09-27 16:24:00
您需要授予服务器将文件写入媒体目录的权限。
最简单的方法是使用media命令将www-data目录的组更改为服务器的组-www-data。
光盘到项目的目录中,并将以下内容写成:
sudo chown -R <your-username>:www-data media当然,用用户名替换<your-username>。
https://stackoverflow.com/questions/46451805
复制相似问题