問題タブ [django-file-upload]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1868 参照

django - 保存されたFileFieldからDjangoのUploadedFileにファイルをコピーする

request.FILESからではなく、別の保存されたレコードからファイルを保存する必要があります。

モデルレコードのコードは次のとおりです。

そして、ビュー(この場合MyFormはRealRecordに保存するモデルフォームです):

つまり、基本的にはオブジェクトFieldFileとして使用されているということです。UploadedFile

それぞれFooに名前のFooFileレコードと名前awesome_fileのレコードがmediocre_fileあり、の必須フィールドと一致しますRealRecord

クレイジーなことは、これは完全に検証されます。ただし、問題は、作成される結果のレコードで、awesome_fileとmediocre_fileの両方のパスが「foo_folder」にあることです。ただし、「foo_folder」内のファイルは必要ありません。の各フィールドに指定したパスにファイルを配置する必要がありますRealRecord

したがって、従来のUploadedFileのように動作し、それぞれのフィールドの値と値を取得するために、FieldFileからの値に対して何ができるのか疑問に思っていると思います。FooFieldupload_topath

0 投票する
1 に答える
4647 参照

django - Django (オーディオ) ファイルの検証

ユーザーがオーディオ ファイルをアップロードできるサイトを試しています。手に入れることができるすべてのドキュメントを読みましたが、ファイルの検証についてはあまり見つかりません。

ここで完全な初心者(これまでにいかなる種類のファイル検証も行ったことない)で、これを理解しようとしています。誰かが私の手を握って、私が知る必要があることを教えてもらえますか?

いつもありがとうございます。

0 投票する
1 に答える
149 参照

django - これは、モデルに関連付けられているFileFieldが確実に削除されるようにする方法ですか?

FileFieldを持つモデルのインスタンスを削除すると、実際のファイルはMEDIA_ROOTフォルダーに残ります。これに対抗するために、私はpost_deleteシグナルをリッスンして、これを実行しています。

うまくいくようですが、このようにするのがベストプラクティスかどうかはわかりません。何かご意見は?

0 投票する
1 に答える
849 参照

django - django:解凍したファイルをローカルディスクに登録する

【質問が長くなってしまいましたことをお詫び申し上げます。】

私は Debian スクイーズで Django 1.2.3-3+squeeze1 を使用しています。

zip ファイルをディスクの一時的な場所にアップロードして解凍し、結果を永続的な場所に保存するアプリケーションを作成しています。FileUpload解凍されたファイルは、解凍後に呼び出されるクラスとしてデータベースに登録されます 。アップロードされた圧縮ファイルもクラスに対応していますが、この質問では無視します。FileUploadこのように見えます。

で定義されたフォームも使用しています

ディスク上の解凍されたファイルを取得する関数。それらをデータベースに登録し、 と呼ばれる正しい場所に移動します addFile。以前はこれを使用していました:

これは機能しましたが、問題はファイル全体をメモリにダンプすることでした。大きなファイルの場合、特に Python がメモリの経済性で知られていないことを考えると、これは大量のメモリを消費していました。だから私はこれに切り替えました:

UploadedFile( に) 既に存在していた派生クラスはどれも、 django/core/files/uploadedfile.py私が望んでいたことをしていないように見えたので、私は をサブクラス化することを余儀なくされました。

Django File Uploads docsが言うので、temporary_file_path関数はそこにあります

UploadedFile.temporary_file_path()

ディスクにアップロードされたファイルのみがこのメソッドを持ちます。アップロードされた一時ファイルへのフル パスを返します。

後述するように、FileSystemStorageクラスは関数内でこの属性を探して いるようです。_save

nが zip アーカイブ内のファイルの相対パスである場合、使用法は

これは機能しますが、コードをトレースしたところ、コードがストリーミングを使用していることがわかりました。この場合、ファイルを一時的な場所から永続的な場所にコピーすることが明らかに最適です。問題のコードは 、クラスdjango/core/files/storage.py_save関数にあり ます。FileSystemStorage_savenameは宛先の相対パスで、contentFileオブジェクトです。

関数は_save属性 を探しています temporary_file_path。このコードは、 でtemporary_file_path前述した関数 によってトリガーされることを意図していると思いますdjango/core/files/uploadedfile.py。ただし、実際に渡される (content引数に対応する) クラスはであり、このオブジェクト<class 'django.db.models.fields.files.FieldFile'>の属性 dict ( ) は次のようになります。content.__dict__

は、データ メンバー内にあるクラスにtemporary_file_pathアタッチされ ます。その ため、それ自体ではなく、属性があり ます。UnzippedFile_filecontent._filetemporary_file_pathcontent

これは、通常のファイルのアップロードがどのように見えるかです。ご覧のとおり、似ています。

FileUploadForm saveコードがからStorageオブジェクトに到達する方法を詳細に追跡することは困難です。特に Django フォームのコードはかなりあいまいです。

とにかく、私の質問は、このすべてのセットアップの後、以下の最初のオプションがどのように/いつfile_move_safeアクティブになるはずですか? ここにミスマッチが見られます。これはバグですか?誰でも明確にできますか?

0 投票する
1 に答える
182 参照

python - DjangoでオブジェクトのFileFieldをどのように変更しますか?

FileField(ドキュメント)を受け取るClassFileというモデルがあります。

request.FILES ['file']が明らかに存在しないため、ファイルアップロードフォームが送信された後に以下のClassFileインスタンスを保存しようとすると失敗します。

このオブジェクトを適切な方法で保存しているかどうか疑問に思いました。request.FILES ['file']は正しいタイプですか?ありがとうございました。

0 投票する
1 に答える
1211 参照

django - Djangoでは、どのようにforms.pyのファイルフィールドにアクセスできますか?

Django アプリケーションの forms.py にこのフォーム クラスがあります。

その名前を検証する clean 関数を介して検証のために、forms.py にアップロードされたファイルにアクセスしたいと思います。

ただし、問題は、「QueryDict」に「attachment」が見つからないというエラーが表示されることです。request.FILES を送信フォームにバインドしています。フォームで enctype="multipart/form-data" も使用しています。私は、forms.py で FileField データにアクセスする適切な方法は何だろうと思っていました。

ありがとうございました。

0 投票する
8 に答える
28563 参照

django - FileFields を使用して ModelForms のファイル アップロードでファイル タイプを制限するにはどうすればよいですか?

私の目標は、Django ModelForm の FileField を PDF と Word ドキュメントに制限することです。私がグーグルで検索した回答はすべて、別のファイルハンドラーの作成を扱っていますが、ModelForm のコンテキストでそれを行う方法がわかりません。アップロードするファイルの種類を制限するために使用できる settings.py の設定はありますか?

0 投票する
2 に答える
1369 参照

django - ファイルがインスタンスに保存されないのはなぜですか (ディスクに保存されます...)?

ファイルを指定したディスクに保存することはできますが、インスタンスに保存することはできず、その理由がまったくわかりません!

models.py

ビュー.py

handle_uploaded_file

song_upload.html (関連部分)

フォーム.py

ファイルは media/uploaded/music にありますが、管理者の audio_file は空白です。audio_file に blank=False (これがやりたいことです) を設定すると、このフィールドは必須であると言われます。何を与える??

前もって感謝します!しばらくこれに取り組んでいましたが、ドキュメントは私には軽いようです(初心者)。

0 投票する
1 に答える
8502 参照

django - DjangoでUploadedFileの一時的な名前を取得するにはどうすればよいですか?

私はいくつかのファイル検証を行っており、UploadedFile を実行できる場所に保存する前に、「/tmp」ディレクトリにある間に UploadedFile を外部ライブラリにロードしたいと考えています。Django は次のことを行います。

Django は、アップロードされたファイルをシステムの一時ディレクトリに保存されている一時ファイルに書き込みます。Unix ライクなプラットフォームでは、これは Django が /tmp/ tmpzfp6I6.uploadのような名前のファイルを生成することを期待できることを意味します。

手に入れたいのは「tmpzfp616.upload」です。 UploadedFile.name は「」を与え、file.name はファイルの適切な名前「example.mp3」を与えます。

私が使用しているライブラリでは、ファイル自体ではなく一時ファイルのファイルパスをライブラリに渡す必要があるため、文字列が必要です。

何か案は?

前もって感謝します。

編集:これが私のコードです:

「UploadedFile」を使用すると、「タイプ オブジェクト 'UploadedFile' には属性 'temporary_file_path' がありません」という AttributeError が表示されます。代わりに file.temporary_file_path を使用すると (ここで暗闇の中でダーツを投げるだけです)、IOError が発生します。

[Errno 2] そのようなファイルまたはディレクトリはありません: 'bound method TemporaryUploadedFile.temporary_file_path of >'

私はtemporary_file_pathが私が探している解決策であることを認識しています.

0 投票する
2 に答える
3609 参照

python - Django ImageField / FileFieldは、モデルのpkを使用してアップロードされたファイルを保存します

レガシーサイト(元々はレールで書かれていました)を変換していますが、デフォルトでは画像はフォーマットを使用して保存され{{pk}}.{{extension}}、新しいファイルがアップロードされるとそのファイルは常に上書きされていました。このdjangoバージョンでそのフォーマットを継続したいと思います。

私は当初、FileSystemStorageを拡張するのが良い方法だと思っていましたが、現在のモデルオブジェクトをそれに渡す方法がわかりません。誰かがこれを達成するための「ジャンゴの方法」についての提案がありますか?

これを管理するために拡張する独自のクラスを作成する必要がある場合はImageField、そうしてください。:)私が見逃している単純なものがあったかどうか疑問に思っています。

[編集] surfeurxとDrTyrsaからの回答に基づいて私がしたこと:

私が今抱えている本当の問題は、画像を上書きしたいということです。ImageFieldこれにより正しいファイル名が提供されますが、上書きするには拡張する必要があるようです。この小さな男を見つけました:http://djangosnippets.org/snippets/636/