可以在Django中更改上传文件的文件名吗?我搜索了,但找不到任何答案。
我的要求是,无论何时上传文件,其文件名都应以以下格式更改。
format = userid + transaction_uuid + file_extension
非常感谢你…
你如何上传文件?我以为FileField。
FileField
FileField.upload_to的文档说,该upload_to字段
upload_to
也可以是可调用的,例如函数,将被调用以获得上载路径,包括文件名。该可调用对象必须能够接受两个参数,并返回要传递给存储系统的Unix样式的路径(带有正斜杠)。将传递的两个参数是:
“instance“:FileField定义的模型实例。更具体地说,这是附加当前文件的特定实例。
“filename“:最初提供给文件的文件名。确定最终目标路径时,可以考虑也可以不考虑。
因此,看起来你只需要创建一个函数来进行名称处理并返回路径即可。
def update_filename(instance, filename): path = "upload/path/" format = instance.userid + instance.transaction_uuid + instance.file_extension return os.path.join(path, format)