使用Django选择上传文件的文件名

时间:2009-08-06 08:26:14

标签: python django django-models

我正在上传图片(由FileField表示),我需要在上传文件时重命名这些文件。

我希望他们像这样形成:

"%d-%d-%s.%s" % (width, height, md5hash, original_extension)

我已阅读文档但我不知道是否需要编写自己的FileSystemStorage类或我自己的FileField类或...?一切都如此紧密,我不知道从哪里开始。

2 个答案:

答案 0 :(得分:19)

您不需要编写自己的FileStorage类或任何复杂的类。

File / ImageFields上的'upload_to'参数可以使用一个返回要使用的路径/文件的函数。

如何执行此操作已经回答here

答案 1 :(得分:-1)

我在阅读本文时的初衷就是你需要重载模型上的save方法,并使用os.rename()方法,但这会导致很多开销,而且从开始到结束通常都很麻烦。如果您只是想重命名该文件,但又不想对其进行任何物理更改(调整大小,重复等),那么我肯定会推荐上面提出的arcanum方法。