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 回答