2009-08-06 9 views
6

画像をアップロードしています(FileFieldで表されています)。ファイルをアップロードする際に名前を変更する必要があります。Djangoでアップロードしたファイルのファイル名を選択してください

私は彼らがそのようにフォーマットされたい:

"%d-%d-%s.%s" % (width, height, md5hash, original_extension)

私は、ドキュメントを読んだが、私は私自身のFileSystemStorageクラスまたは自分のFileFieldにクラスを書いたりする必要がある場合、私は知りません。 ..?すべてがとてもリンクされているので、どこから始めたらいいか分からない。

答えて

18

独自のFileStorageクラスやそれ以外のものを書く必要はありません。

File/ImageFieldsの 'upload_to'パラメータには、使用するパス/ファイルを返す関数を使用できます。

これはすでに回答されている、これはあなたがモデルにメソッドを保存し、os.rename()メソッドを使用するオーバーロードする必要があるということでした読んhere

-1

私の最初の本能を行うが、それは原因とする方法多くのオーバーヘッドがあり、一般的には最初から最後まで面倒です。ファイルの名前を変更したいだけで、物理的な変更(サイズ変更、複製など)を行わない場合は、arcanumが上に示唆しているアプローチをお勧めします。

関連する問題