使用model.FileField在Django中保存之前修改文件名

Prz*_*mek 7 django-models django-views

我有一个model.FileField(upload_to ='%Y /%m /%d')字段.这很好用; 但是,我想根据用户上传文件的上下文重命名文件,然后再保存文件.有没有办法在保存之前修改请求对象以实现此目的?

我遇到过类似问题的人,但答案总是指向Django文档.我已经尝试使用文档来解决这个问题但不能.有人可以提供一些代码来显示热点来解决这个问题吗?

提前致谢.

小智 0

您可以使用带有实例和文件名输入的 upload_to 值函数以及返回路径和文件名

例如:

def upload_to_func(instance, filename):
    now = datetime.now()
    return os.path.join(str(now.year), str(now.month), str(now.day), filename)



field_x = model.FileField(upload_to=upload_to_func)
Run Code Online (Sandbox Code Playgroud)

您可以在函数中更改路径和文件名