0

現時点でpython/djangoを学ぼうとしているのですが、次の問題に遭遇しました。3つのモデルがあるとしましょう:

Model Category(models.Model)
    name = models.Charfield(max_length64)

Model Subcategory(models.Model)
    category    = models.ForeignKey(Category)
    name        = models.Charfield(max_length64)

Model Animal(models.Model)
    subcategory = models.ForeignKey(Subcategory)
    name = models.Charfield(max_length64)

たとえば、誰かがカテゴリを検索する場合、指定されたメイン カテゴリのいずれかのサブカテゴリに含まれるすべての動物を取得したいと考えています。(複雑すぎないことを願っています)

だから今私の質問は、これを行うための最も効率的な方法は何ですか?

前もって感謝します!

4

2 に答える 2

2

次のようなクエリを実行できます。

animals = Animal.objects.filter(subcategory__category__id=category_id)

または、カテゴリ オブジェクトにアクセスできる場合は、

animals = Animal.objects.filter(subcategory__category=category)

class <ClassName>モデル オブジェクトの定義はではないことに注意してくださいModel <ClassName> 。 例: Model Animalである必要がありますclass Animal

于 2013-05-14T19:14:55.917 に答える
1

次のクエリセットでこれを行います。

animals = Animal.objects.filter(subcategory__category=category)
于 2013-05-14T19:15:10.737 に答える