1

ユーザーがファイルを添付するdjangoフォームがありますが、ファイル自体からpdfフォームデータを抽出しているため、ファイルを保存したくありません。

しかし、フォームを保存すると、ファイルが自動的に保存されます。ファイルが保存されないようにする方法はありますか?

ありがとう

4

1 に答える 1

3

ファイルがサーバーにアップロードされているとき、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()がないため、フォームデータはファイルシステムに書き込まれません。

于 2012-11-29T02:37:28.923 に答える