我正在上传图片(由FileField表示),我需要在上传文件时重命名这些文件。
我希望他们像这样形成:
"%d-%d-%s.%s" % (width, height, md5hash, original_extension)
我已阅读文档但我不知道是否需要编写自己的FileSystemStorage类或我自己的FileField类或...?一切都如此紧密,我不知道从哪里开始。
答案 0 :(得分:19)
您不需要编写自己的FileStorage类或任何复杂的类。
File / ImageFields上的'upload_to'参数可以使用一个返回要使用的路径/文件的函数。
如何执行此操作已经回答here
答案 1 :(得分:-1)
我在阅读本文时的初衷就是你需要重载模型上的save方法,并使用os.rename()方法,但这会导致很多开销,而且从开始到结束通常都很麻烦。如果您只是想重命名该文件,但又不想对其进行任何物理更改(调整大小,重复等),那么我肯定会推荐上面提出的arcanum方法。