¿Cómo actualizar el nombre de archivo de una instancia de FileField de Django?

Aquí un modelo django simple:

class SomeModel(models.Model): title = models.CharField(max_length=100) video = models.FileField(upload_to='video') 

Me gustaría guardar cualquier instancia para que el nombre del archivo del video sea ​​un nombre de archivo válido del title .

Por ejemplo, en la interfaz de administración, cargo una nueva instancia con el título “Lorem ipsum” y un video llamado “video.avi”. La copia del archivo en el servidor debe ser “Lorem Ipsum.avi” (o “Lorem_Ipsum.avi”).

Gracias 🙂

Si solo ocurre durante la operación de guardar, según los documentos , puede pasar una función a upload_to que se llamará con la instancia y el nombre de archivo original y debe devolver una cadena para usarla como nombre de archivo. Quizás algo como:

 from django.template.defaultfilters import slugify class SomeModel(models.Model): title = models.CharField(max_length=100) def video_filename(instance, filename): fname, dot, extension = filename.rpartition('.') slug = slugify(instance.title) return '%s.%s' % (slug, extension) video = models.FileField(upload_to=video_filename)