2011-07-23 8 views
0

実際のmedia_rootパスに関係なく、ファイルストレージパスをビューから動的に設定したいと考えています。これが可能です。私はカスタムストレージオブジェクトを調べて、私はカスタムupload_toメソッド呼び出しを認識しています。現在、ImageFieldモデルのupload_toが指定されたときに呼び出されるメソッドがあります。これにより、media_root内のディレクトリを変更できます。私は上書きFileSystemStorageクラスと同様の何かをしようとしましたが、私はそれが私がビュー内でそれを変更する前にバインドされていると思うに設定されているものは何でも。 fileuploadハンドラが行く方法である場合、私は1つを実装する方法について興味があるだろう。djangoのカスタムファイルのストレージパス

答えて

1

upload_toで指定したパスが/で始まる場合は、絶対パスと見なされます。これにより、MEDIA_ROOTに関係なく、任意のパスを設定できます。

1

path = default_storage.save(filePath, ContentFile(file)) ここで、filePathは保存が必要なファイルパスであり、fileはユーザーがアップロードしたファイルです。この関数はファイルを格納することによってパスを返します。

file = request.FILES['filee'] 
filePath = '%s/%s' % ('path/to/directory', file.name) 
file = file.read() 
path = default_storage.save(filePath, ContentFile(file)) 
関連する問題