Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在django中获取上载的文件名_Python_Django - Fatal编程技术网

Python 如何在django中获取上载的文件名

Python 如何在django中获取上载的文件名,python,django,Python,Django,问题背景 我是django的新手。我正在尝试从客户端上传文件并保存它。 对于这个问题,我创建了以下模型 from django.db import models class UploadFile(models.Model): uploadfile = models.FileField(upload_to='toProcess/') 我使用这个模型来保存文件,如下所示 newfile = UploadFile(uploadfile = request.FILES['file']) new

问题背景 我是django的新手。我正在尝试从客户端上传文件并保存它。 对于这个问题,我创建了以下模型

from django.db import models
class UploadFile(models.Model):
    uploadfile = models.FileField(upload_to='toProcess/')
我使用这个模型来保存文件,如下所示

newfile = UploadFile(uploadfile = request.FILES['file'])
newfile.save()
它正在保存文件。但现在我想处理保存的文件。在django中,如果存在具有相同名称alreday的文件,那么它将向原始文件名添加一些唯一的后缀。我对这种方法很满意,不想编写新方法来创建唯一的文件名

问题- 如何获得django为文件计算的新的唯一名称


意思是说,如果我上传同一个文件两次,比如说“abc.pdf”,那么它会将第一个上传的文件保存为“abc.pdf”,第二个上传的文件保存为“abc_somesuffix.pdf”。如何知道已保存文件的名称?

据我所知,在您的情况下,文件名存储在模型字段的
name
属性中

newfile.uploadfile.name
文件的路径存储在

newfile.uploadfile.path
请参阅文件以供进一步参考,以及许多其他SO Q&A(例如)


如果您想采用自己的文件名格式,可以在模型字段的
upload_to
参数中指定一个可调用的文件名,因为
newfile.uploadfile.name
work?@Pynchia-是。它起作用了。。谢谢:)