Sé que aquí hay un hilo similar, pero no encuentro la solución a mi problema.Renombrar archivos en Django FileField
tengo que cambiar el nombre de un archivo que se ahorran de Django models.FileField
yo probamos este
os.rename(old_path, new_path)
mod.direct_file = File(open(new_path))
mod.save()
Y esta
mod.direct_file.save(new_path, File(open(old_path)))
os.remove(old_path)
Y muchas otras maneras, pero nada parecía ayuda. Se crea un nuevo archivo de todas las maneras, sin embargo, los datos en el campo de archivos no cambian en absoluto.
EDIT: SOLUCIONADO
os.rename(old_path, new_path)
cursor = connection.cursor()
cursor.execute("UPDATE mods_mod SET direct_file = %s WHERE id = %s", [new_name, mod.id])
transaction.commit_unless_managed()
método Open abre ya asignado archivo. FieldFile no tiene un método para abrir otro archivo. – aemdy
El archivo se asigna a través del campo Archivo, ¿correcto? ¿Estás tratando de cambiar todos los archivos de tu modelo o una sola instancia del modelo? – droxey
Me gustaría cambiar el nombre del archivo 'direct_file = models.FileField (default = None, blank = True, null = True, upload_to =" mod_files ") subido en este campo. – aemdy