Guardar ficheros subidos mediante FileField en un lugar distinto a MEDIA_ROOT en Django

written by uve 24 February 2011

Muy brevemente voy a explicar cómo podemos guardar ficheros en una ubicación distinta a MEDIA_ROOT. Esto es especialmente útil cuando quieres subir ficheros que puedan consultar los usuarios logueados, pero quieres que no tengan un acceso público (como todo el contenido de media):

 

from django.core.files.storage import FileSystemStorage

sistema_almacenamiento = FileSystemStorage(location='/ubicacion/distinta/a/media/')

class MiModelo(models.Model):
   file = models.FileField(upload_to='ficheros', storage=sistema_almacenamiento)

¡Cuidado con los permisos de los directorios!

 

Tags

La teoría es cuando crees saber algo, pero no funciona.
La práctica es cuando algo funciona, pero no sabes por qué.
Los programadores combinan la teoría y la práctica:
Nada funciona y no saben por qué.