他のフィールドの中でも特に、FileField を持つ ModelForm があります。myform.save() を呼び出すときにファイル名を変更して、衝突を回避したかった (6 つのランダムな文字をファイル名に挿入する)。Djangoでこれを行う適切な方法は何ですか?
質問する
426 次
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)
ModelForm forMyModel
は、モデルの save メソッドを呼び出して、トリックを実行します。それが役に立てば幸い :)
于 2012-05-15T23:17:54.237 に答える