1

更新 : 以下のポスターのおかげで、公式ドキュメントが最新であることは明らかです。Google で表示される他のページをざっと目を通すのではなく、注意深く読むことをお勧めします。


Django でファイルをアップロードするための例やスニペットを見つけ続けていますが、時代遅れだと言っている人を読んでいます。

以下は、Web に関する (さまざまな例を見て) 基本的な混乱です。

ファイル データを自分で手動で保存する必要がありますか (つまり、この例のようにファイルを開いて書き込む必要がありますか)、それとも、ファイル型のフィールドを持つモデルを保存するときに、Django はファイルを自動的に保存するようになりましたか?

モデルのこのフィールドにファイルデータをコピーするために、ファイル データをどこかから手動で取得する必要がありますか? つまり、request.FILES は非推奨であることは理解していますが、(<input type="file" タグを使用して) カスタム HTML フォームからファイルをアップロードすると、request.FILES であっても、このフィールドのcleaned_data は None になります。辞書にはまだデータが含まれているようです。では、ファイル データを取得してモデルのフィールドに配置するにはどうすればよいのでしょうか。(もしそれが私がするつもりだったのなら?)

乾杯

フィル

4

1 に答える 1

3

ドキュメントはこれに関して非常に優れており、最新です。

基本的なファイルのアップロードにFileFieldは、フォームで a を使用するだけです。このフォームに渡しrequest.POSTrequest.FILES作業を行います。確かに、request.FILES私が知る限り、非推奨ではありません。

ここで、ファイルのアップロードでもっと手の込んだことをしたい場合は、デフォルトから脱却する必要がある場合がありますがFileField、これについてもドキュメントで詳しく説明されています。

enctype="multipart/form-data"また、よくある間違いの1つは、自分のフォームを持っていることを忘れていることです. これを含めないrequest.FILESと空になります。

于 2009-09-24T15:27:42.347 に答える