2012-05-15 103 views
0

我有一個帶有FileField的ModelForm等字段。我想在調用myform.save()時修改文件名以避免衝突(將6個隨機字符插入文件名)。在Django中做這件事的正確方法是什麼?在Django ModelForm中修改文件的文件名保存

+1

檢查http://stackoverflow.com/questions/10433440/how-to-change-the-filename-on-uploaded-file – okm

回答

1

你需要重寫你的模型的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) 

你的ModelForm爲MyModel將調用它的模型的保存方法,並伎倆。 希望它有助於:)