最初の投稿はこちら。Djangoでは多くのファイルを特定のモデルに関連付けたいので、ファイルと呼ばれる別々のモデルを実行し、モデル 'A'多くのファイルがあります。しかし、私は私のファイルがモデル 'A'によって指名されたディレクターに保存されることを望みます。djangoモデルの他のオブジェクトを参照するにはどうすればいいですか?
class Show(models.Model):
name = models.CharField()
showfolder = models.FilePathField()
class Episode(models.Model):
show = models.ForeignKey(Show)
name = models.CharField()
files = models.ManyToManyField(mp3)
class Mp3(models.Model):
file = FileField(upload_to=Episode.show.showfolder)
だから、うまくいけば、その最後の行は、私はそれが(エピソードに関連付けられている表示オブジェクトからフォルダ名を取得する)何をしたいか表現:だから、例えば私はこのような何かをしたいです。質問はどうすればそれを本当に書くのですか?(コントローラーのフープを飛び越える以外に)
ありがとう。
ありがとうSkirmantas!あなたの答えを読んだ後、私はあなたのリンクをクリックして、それは直前に私が知る必要があった文章をすべて読んでいて、何とかそれをスキップしたことが判明しました!(私はたいていスキムをしません)。複数の場所にあるファイルについては、エピソードではなくShowオブジェクトに基づいているため、私は心配する必要はないと考えています。エピソードは1つのショーにしか属していません。または私は何かを逃している? – UserZer0
'songA-> episodeX'と' songA-> episodeY'と言うことができます。今では意図されていないが、 'EpisodeX-> Show1'、' EpisodeY-> Swow2'が可能です。あなたの管理インターフェースには、すべての曲がすべてのエピソードで利用できるボックスがあります。だから間違いはかなり起こりうる。あなたの 'Mp3'の代わりに、あなたは' Show'に直接 'ForeignKey'を持つことができます。 Mp3にはMp3に限られた選択肢があり、Showは現在のエピソードの親です。限定された選択フィールドのドキュメントをチェックしてください:http://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.ManyToManyField.limit_choices_to – Ski
私は 'limit_choices'部分について間違っているかもしれません。これらの選択肢をこの属性で正しく制限する方法はないようです。しかし、いずれにせよ私はあなたに表示するForeignKeyを持ってお勧めします。オブジェクトを照会する方が簡単になります。 – Ski