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

Posted

技术标签:

【中文标题】使用 model.FileField 在 Django 中保存之前修改文件名【英文标题】:Modify Filename Before Saving in Django using model.FileField 【发布时间】:2011-05-20 14:50:29 【问题描述】:

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

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

提前致谢。

【问题讨论】:

In django changing the file name of uploading file的可能重复 【参考方案1】:

您可以使用带有实例和文件名输入并返回路径和文件名的 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)

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

【讨论】:

以上是关于使用 model.FileField 在 Django 中保存之前修改文件名的主要内容,如果未能解决你的问题,请参考以下文章

launch_map: "Dict[asyncio.Task[object], threading.Thread]" = ​​ -Error While Creating Djan

Session

Checkmarx 反射型 XSS

Django模板中的Python [关闭]

在 docker 中使用 selenium 运行 django 测试

无法使用 PostgreSQL 数据库访问管理页面