2011-10-21 24 views
4

ユーザーが画像をアップロードできるサイトを作成しています。私はファイルがお互いを上書きしないように、各ファイル名に一意の名前があることを確認する必要があります。私は一意の名前を生成します。しかし、ファイルを保存する前にファイル名を変更するにはどうすればよいですか?私はそれが保存されているフォルダを変更する方法があることがわかりますが、それは私が後にしているものではありません。私は私のコードでDjango/Python:ファイルを保存する前にアップロードしたファイル名を変更する

class saved_photos(models.Model): 
    name = models.CharField(max_length=20) 
    photo = models.ImageField(upload_to='images/things/', blank=True, null=True) 

:私は必要なもの

new_name = get_unique_name() 
p = saved_photos(name = new_name, photo = request.FILES) 
p.save() 

はをnew_nameする保存されたファイルの実際の名前です。

答えて

7

upload_toの機能を定義する必要があります。

+0

ファイル名を変更するのではなく、ファイルの場所を変更するだけですか?すべてのファイルを同じフォルダに保存したい。 – user984003

+0

@ user984003いいえ、そうではありません。 – DrTyrsa

+0

私は方法が見えないので、コード例を挙げることはできますか?私が変更できる名前属性はありますか? – user984003

1

Djangoは一意のファイル名を正しく処理できます。重複したファイル名の名前は自動的に変更されます。 ファイル名を手動で設定する場合は、upload_toという関数をDrTyrsaと定義してください。 This questionがお手伝いします。

関連する問題