【发布时间】:2012-05-23 03:09:39
【问题描述】:
我有一个带有 FileField 的 ModelForm 以及其他字段。我想在调用 myform.save() 时修改文件名以避免冲突(在文件名中插入 6 个随机字符)。在 Django 中执行此操作的正确方法是什么?
【问题讨论】:
标签: python django forms file modelform
我有一个带有 FileField 的 ModelForm 以及其他字段。我想在调用 myform.save() 时修改文件名以避免冲突(在文件名中插入 6 个随机字符)。在 Django 中执行此操作的正确方法是什么?
【问题讨论】:
标签: python django forms file modelform
您需要覆盖模型的 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 将调用它的模型的保存方法并完成任务。
希望对你有帮助:)
【讨论】: