我正在创建一个用户可以上传图片的网站。我需要确保每个文件名都有一个唯一的名称,以防止文件相互覆盖。我将生成唯一的名称。但是如何在保存文件之前更改文件名?我发现有一些方法可以更改保存到的文件夹,但这并不是我所追求的。
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。
答案 0 :(得分:7)
您需要定义upload_to
功能。
答案 1 :(得分:1)
Django可以正确处理唯一的文件名。重复的文件名将自动重命名。
如果你想手动设置文件名,只需定义upload_to
函数,DrTyrsa说。 This question可能会对您有所帮助。