1

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

4

1 回答 1

2

您需要覆盖模型的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)

您的 ModelFormMyModel将调用它的模型的保存方法并做到这一点。希望能帮助到你 :)

于 2012-05-15T23:17:54.237 回答