我正在用Django做一个项目。下面是我的models.py
:
class Owner(models.Model):
name = models.CharField(max_length=200)
class Cat(models.Model):
owner = models.ForeignKey(Owner, on_delete=models.CASCADE)
pseudo = models.CharField(max_length=200)
我照做了:first_owner = Owner.objects.get(id=1)
我想做一些类似的事情first_owner.Cat
把所有的猫从主人那里弄来
我知道我可以做这样的事情:first_cat = Owner.objects.get(id=1)
owner = first_cat.owner
但我希望在不使用ManyToMany字段的情况下进行反向操作,因为在我的情况下,每只猫都有一个唯一的主人。
我的目标是只使用一个查询来实现这一点。
2条答案
按热度按时间iyr7buue1#
要从视图中的
Owner
示例获取所有Cat
示例,可以执行以下操作:在模板中,您可以执行以下操作:
qmb5sa222#
您可以在模型中添加
related_name
,并使用它从给定字段中获取作为ForeignKey引用的所有对象,如下所示:并按如下方式查询它:
您将获得
Cats
模型中作为ForeignKey引用的所有对象。