ユーザーがファイルを添付するdjangoフォームがありますが、ファイル自体からpdfフォームデータを抽出しているため、ファイルを保存したくありません。
しかし、フォームを保存すると、ファイルが自動的に保存されます。ファイルが保存されないようにする方法はありますか?
ありがとう
ファイルがサーバーにアップロードされているとき、djangoは指定された内容に応じてアップロードされたファイルを処理しFILE_UPLOAD_HANDLER
ます。デフォルトでは、次のとおりです。-
("django.core.files.uploadhandler.MemoryFileUploadHandler",
"django.core.files.uploadhandler.TemporaryFileUploadHandler",)
form.save()
これは、 (form
オブジェクトにアップロードされたファイルが含まれている)が呼び出されるまで、ファイルオブジェクトがサーバーのメモリにあることを意味します。upload_to
呼び出されると、ファイルフィールドの属性で指定した内容に基づいて、ファイルオブジェクトがファイルシステムに書き込まれます。
このアップロードされたファイルがファイルシステムに書き込まれないようにするために私が行うことは、を呼び出さずにこのファイルオブジェクトを変数に割り当てることですform.save()
。このような:-
uploaded_file = request.FILES['file']
そして、このように意図的に割り当てることはできませんrequest.FILES
:-
form = MyModelFormWithFileField(request.POST, None)
変数が割り当てられているのでuploaded_file
、ファイルシステムに書き込むことなく、好きなことを実行できます。
また、form
インスタンスにはrequest.FILES
割り当てform.save()
がないため、フォームデータはファイルシステムに書き込まれません。