2010-02-20 9 views
9

¿Qué hace Django con MEDIA_ROOT exactamente? Nunca lo entendí Dado que Django no sirve medios estáticos, y tiene que configurar apache o algo similar para él, ¿por qué le importa en qué directorio se encuentra?¿Qué hace Django con `MEDIA_ROOT`?

Respuesta

9

No eres el único que se pregunta; echa un vistazo a Django ticket #10650. Sobre la base de las observaciones formuladas por los desarrolladores de Django allí, creo que esto resume bastante bien lo que MEDIA_ROOT se utiliza para:

Desafortunadamente, Django es también la culpa por ser demasiado vaga en sus documentos sobre lo MEDIA_ROOT y MEDIA_URL son usado para. La búsqueda a través del código de Django confirma que MEDIA_ROOT & MEDIA_URL se utilizan para la carga de archivos, y que MEDIA_URL se proporciona como una conveniencia para las plantillas a través de los procesadores de contexto predeterminados (disponible al usar RequestContext ??).

+1

Eso es un gran trabajo de investigación - peppergrower. – Jibin

2

Parece ser utilizado por algunas clases en Django como valor predeterminado; por ejemplo, FileSystemStorage lo usa como el lugar predeterminado para almacenar archivos.

2

Cuando crea un modelo con atributos ImageField o FileField, debe pasar el argumento upload_to. Esa es una ruta relativa que se agregará a su ruta MEDIA_ROOT y habrá guardar y recuperar esos archivos.