私は、使用するフィールドについて少し混乱しています。私が必要とするのは、ファイル(オーディオや画像用の別のファイル)を保持するフィールドだけです。Django FileFieldまたはFilePathFieldを使用するには?
FileFieldはアップロード用のようですが、私が必要とするものはあまりにも多すぎると思います何かがアップロードされるたびに、ファイルを自動的にアップロードして一意のファイル名(file_FHjgh758.txt)に名前を変更する方法も嫌いです。
FilePathFieldと私が持っている問題は、それは絶対パスを必要とするように思われることである、明らかに生産へのDEVは異なるだろうこれ、私がモデルにこれを追加することで、この周りだ...
import os
class Foo(models.Model):
path = os.path.dirname(os.path.dirname(__file__))
path = os.join(path, 'media')
audio = models.FilePathField(path=path)
これは安全で適切かどうかわかりませんが、オンラインやドローイングの文書はあまりありません。
明確にするために、私は自分のシステムのどこかのファイル(オーディオまたはイメージ)を指すことができるフィールドを持っているだけです。これを行う最善の方法は何でしょうか?
あなたの答えをありがとう、これは私には意味がありますが、私はテンプレートからファイルの場所を呼び出す方法に固執しています。私がdbに保存されているURLを呼び出すと、 '/home/../../'のようなものになり、htmlはdevサーバとの間で相対的なものにしようとします。私はここで明らかに何かが不足していると思います。 – deltaskelta
私は問題は、FilePathFieldは、サーバー上にあるWebサーバーからアクセスできないファイルを意味します...パブリックファイルを使用する場合は、 'FileField'は' url'属性を持ち、ファイルを(MEDIA_ROOTの中で)アクセス可能な場所に保存します。ランダムな接尾辞を避けるために 'FileField'の保存動作を変更することができます。 – solarissmoke
フォローアップのおかげで、私が誤解されていないなら、urls.pyにエントリを作成し、/ mediaフォルダーに入ってくるリクエストを処理するビューも作成する必要がありますか?それは正しいのですか、それとも危険ですか? – deltaskelta