我有一个带有 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/