2009-08-06 18 views
6

Estoy cargando imágenes (representadas por un FileField) y necesito cambiar el nombre de esos archivos cuando se cargan.Elija el nombre de archivo de un archivo cargado con Django

que quieren que sean formateados así:

"%d-%d-%s.%s" % (width, height, md5hash, original_extension)

He leído la documentación, pero no sé si tengo que escribir mi propia clase FileSystemStorage o de mi propia clase o FileField. ..? Todo está tan vinculado que no sé por dónde empezar.

Respuesta

18

No necesita escribir su propia clase FileStorage ni nada complicado.

El parámetro 'upload_to' en File/ImageFields puede tomar una función que devuelve la ruta/archivo a usar.

Cómo hacer esto ya ha sido contestada here

-1

Mi instinto inicial cuando leyendo esto es que usted necesita para sobrecargar el método de ahorrar en el modelo, y utilizar el método os.rename(), pero que provoca una muchos gastos generales, y en general es una molestia de principio a fin. Si simplemente desea cambiar el nombre del archivo, pero no desea realizar ningún cambio físico (cambio de tamaño, duplicado, etc.), definitivamente recomendaría el enfoque que sugiere arcanum anteriormente.

Cuestiones relacionadas