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

标签 django-models django-views

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

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

提前致谢。

最佳答案

您可以将函数用于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)
您可以在函数中更改路径和文件名

关于django-models - 使用 model.FileField 在 Django 中保存之前修改文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4360514/

相关文章:

python - 使用字典在模型中创建对象时出现 Django TypeError

Django - 从实时数据库中读取,由单独的应用程序创建

django - 如何在没有迭代的情况下为查询集从多对多中删除对象?

python - Django:日期时间查询

javascript - 将 id 从模板传递到 django 中的 View

django - 从 django View 获取媒体文件夹的绝对路径

django - 在 django admin 的模型字段中即时修改 verbose_name

python - 如何在 Django Rest Framework 中通过电子邮件发送动态数据

django - Django RestFramework Elasticsearch :时间轴API

python - 为什么 Django 不允许使用上下文重定向