如何在django

时间:2016-01-03 09:17:45

标签: python django

问题背景 我是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的文件,则它会在原始文件名中添加一些唯一的后缀。我对这个approch感到满意,并且不想写一个新方法来创建一个唯一的文件名。

Probelm- 如何获取django为文件计算的新唯一名称?

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

1 个答案:

答案 0 :(得分:1)

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

newfile.uploadfile.path

并且文件的路径存储在

upload_to

请参阅official Django文档以获取进一步参考,以及许多其他SO Q& A(例如this one

如果您想采用自己的文件名格式,可以在模型字段的project1->success then trigger project2->success then trigger project3 参数中指定一个可调用的,explained here