Django / Python:在保存文件之前更改上传的文件名

时间:2011-10-21 09:26:28

标签: python django file-upload

我正在创建一个用户可以上传图片的网站。我需要确保每个文件名都有一个唯一的名称,以防止文件相互覆盖。我将生成唯一的名称。但是如何在保存文件之前更改文件名?我发现有一些方法可以更改保存到的文件夹,但这并不是我所追求的。

class saved_photos(models.Model):
    name = models.CharField(max_length=20) 
    photo = models.ImageField(upload_to='images/things/', blank=True, null=True)

在我的代码中我做了:

new_name = get_unique_name()
p = saved_photos(name = new_name, photo = request.FILES)
p.save()

我需要的是保存文件的实际名称是new_name。

2 个答案:

答案 0 :(得分:7)

您需要定义upload_to功能。

答案 1 :(得分:1)

Django可以正确处理唯一的文件名。重复的文件名将自动重命名。 如果你想手动设置文件名,只需定义upload_to函数,DrTyrsa说。 This question可能会对您有所帮助。