2017-06-23 10 views
0

私はInMemoryUploadedFileオブジェクトを持っています。私が.read()を作成すると、そのコンテンツが失われます。それは何とか同じコンテンツからこのコンテンツを2回読むことが可能ですか?私は.copy()しようとしましたが、もちろん動作しません。InMemoryUploadedFileを2度読む

もしそれができないのであれば、何とかコンテンツを同じオブジェクトに戻すことはできますか?

これは理由:django形式の場合、prevalidation()メソッドはコンテンツを読み込みたいが、そうであれば後で保存することはできません。ここのパフォーマンスは評価されません。

+0

この、 'FOO = ''' 'read_once = InMemoryUploadedFile.read()' 'FOO = fooのような何かを行います+ read_once ' ' #so、今度は2回目としてfooを使うことができる ' – Stack

+0

これは新しいオブジェクトになるという問題です。 – user2194805

答えて

3

あなたは、基礎となるファイルオブジェクトにseek(0)を呼び出すことができる必要があります:

my_file_obj.file.seek(0) 
+0

ありがとう、これは私が必要なものです。 – user2194805

+0

'InMemoryUploadedFile'は完全なファイルインタフェースを実装しているので、' my_file_obj.seek(0) 'を呼び出すことができます。 – knbk

関連する問題