with loginview custom createsuperuser abstractuser django permissions

loginview - login url django



Error de permiso denegado con Django al cargar un archivo (4)

Intente verificar los permisos en cada directorio en la ruta que comienza en /. Solo un pensamiento.

Actualmente tengo un modelo simple definido, con una función de fotorrespuesta que usa el plugin django thumbnails .

pero cuando intento subirlo, me da el siguiente error:

OSError at /admin/products/photo/add/ (13, ''Permission denied'')

Ahora, sé que esto parece ser un problema de permiso, así que lo primero que revisé fueron los permisos en el directorio y los cambié a 777 (solo para probar), reinicié el servidor y fcgi y aún así aparece el error.

Rastrear

Traceback: File "/usr/lib/python2.6/dist-packages/django/core/handlers/base.py" in get_response 92. response = callback(request, *callback_args, **callback_kwargs) File "/usr/lib/python2.6/dist-packages/django/contrib/admin/options.py" in wrapper 226. return self.admin_site.admin_view(view)(*args, **kwargs) File "/usr/lib/python2.6/dist-packages/django/views/decorators/cache.py" in _wrapped_view_func 44. response = view_func(request, *args, **kwargs) File "/usr/lib/python2.6/dist-packages/django/contrib/admin/sites.py" in inner 186. return view(request, *args, **kwargs) File "/usr/lib/python2.6/dist-packages/django/db/transaction.py" in _commit_on_success 240. res = func(*args, **kw) File "/usr/lib/python2.6/dist-packages/django/contrib/admin/options.py" in add_view 734. self.save_model(request, new_object, form, change=False) File "/usr/lib/python2.6/dist-packages/django/contrib/admin/options.py" in save_model 557. obj.save() File "/usr/lib/python2.6/dist-packages/django/db/models/base.py" in save 410. self.save_base(force_insert=force_insert, force_update=force_update) File "/usr/lib/python2.6/dist-packages/django/db/models/base.py" in save_base 483. values = [(f, f.get_db_prep_save(raw and getattr(self, f.attname) or f.pre_save(self, True))) for f in meta.local_fields if not isinstance(f, AutoField)] File "/usr/lib/python2.6/dist-packages/django/db/models/fields/files.py" in pre_save 252. file.save(file.name, file, save=False) File "/var/www/django_projects/gang/../gang/products/thumbs.py" in save 84. super(ImageWithThumbsFieldFile, self).save(name, content, save) File "/usr/lib/python2.6/dist-packages/django/db/models/fields/files.py" in save 91. self.name = self.storage.save(name, content) File "/usr/lib/python2.6/dist-packages/django/core/files/storage.py" in save 47. name = self._save(name, content) File "/usr/lib/python2.6/dist-packages/django/core/files/storage.py" in _save 146. os.makedirs(directory) File "/usr/lib/python2.6/os.py" in makedirs 150. makedirs(head, mode) File "/usr/lib/python2.6/os.py" in makedirs 150. makedirs(head, mode) File "/usr/lib/python2.6/os.py" in makedirs 150. makedirs(head, mode) File "/usr/lib/python2.6/os.py" in makedirs 157. mkdir(name, mode) Exception Type: OSError at /admin/products/photo/add/ Exception Value: (13, ''Permission denied'')

El usuario que ejecuta el daemon FCGI definitivamente tiene acceso para leer y escribir en ese directorio.

Desde settings.py

MEDIA_ROOT = ''/var/www/sites/gang/http/media/'' MEDIA_ROOT_URL = ''/media/''


mkdir(name, mode) Exception Type: OSError at /admin/products/photo/add/

pero su aplicación se implementa en

/var/www/django_projects/gangr/../gangr/

¿Tiene una ruta de directorio establecida en una ruta absoluta "/ admin / products / photo / add /" en lugar de algo relativo como "admin / products / photo / add /"?

Compruebe MEDIA_ROOT y MEDIA_URL en su archivo settings.py.

http://docs.djangoproject.com/en/dev/ref/settings/#media-root


Me encontré con este mismo problema. Y encontró la solución si está hospedando con Apache como su servidor. Por ejemplo, si mi configuración fuera:

MEDIA_ROOT = ''/ var / www / media / geekingreen''

entonces simplemente necesitaría darle a esa carpeta los permisos correctos recursivamente para asegurarme de que las subcarpetas también tengan el mismo permiso. El grupo predeterminado para apache es www-data, así que para dar permiso a mi aplicación django ejecutaría estos comandos.

cd /var/www/media chgrp -R www-data geekingreen/ chmod -R g+w geekingreen/

El comando chgrp -R www-data geekingreen / cambia el directorio geekingreen y cualquier subdirectorio para tener el grupo www-data.
El comando chmod -R g + w geekingreen / cambia los permisos que el grupo tiene en todas estas carpetas que ahora pertenecen a www-data, para ahora tener el permiso de escritura. Obviamente requerido para cargas.

Espero que esto pueda ayudar a cualquiera que pueda haber tenido un problema similar.


En caso de que se encuentre con esto cuando ejecuta su servidor de desarrollo. sudo python manage.py runserver 0.0.0.0:80 el servidor de desarrollo como un root como este: sudo python manage.py runserver 0.0.0.0:80 para probar el sitio con un iPad en la misma red LAN. Los archivos de caché generados en esa sesión pertenecían a root. Entonces, cuando ejecuté el proyecto al día siguiente NO como root obtuve el permiso denegado.