python - 保存时修改 Django ModelForm 中文件的文件名

标签 python django forms file modelform

我有一个带有 FileField 和其他字段的 ModelForm。我想在调用 myform.save() 时修改文件名以避免冲突(在文件名中插入 6 个随机字符)。在 Django 中执行此操作的正确方法是什么?

最佳答案

您需要重写模型的 save 方法,而不是表单的方法。

class MyModel(models.Model):
    # other fields
    my_file = models.FileField(upload_to='uploaddir')

    def save(self, *args, **kwargs):
        new_name = 'file_name-random-chars.ext'
        self.my_file.name = new_name
        super(MyModel, self).save(*args, **kwargs)

MyModel 的 ModelForm 将调用其模型的保存方法并执行此操作。 希望它有帮助:)

关于python - 保存时修改 Django ModelForm 中文件的文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10603563/

相关文章:

python - 如何在 Python 中合并来自 3 个不同列表的嵌套子列表的元素?

Python:计算日期时间的平均值(以毫秒为单位)

python - 要求django url中变量的最小长度

python - 将 Cloudinary 图像上传链接到 Django 模型字段

javascript - 以编程方式提交 Angular 表单,但仍然收到 HTML5 验证错误

C# 表单 - 复选框

Django:用于排除第一个条目的循环

python - 更新多个文件中的全局字典

python - 如何使用 CPack 构建 debian 包来执行 setup.py?

django - 相同的字符串具有不同的翻译