【问题标题】:How can I do to access to a foreign key in the other side?如何访问另一端的外键?
【发布时间】:2022-11-15 12:49:26
【问题描述】:

我正在使用 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 字段的情况下进行反向操作,因为在我的案例中每只猫都有一个唯一的所有者。

我的目标是只使用一个查询来做到这一点。

【问题讨论】:

  • 那么你想要什么样的查询集?
  • 您想从Owner.objects.get(id=1) 访问Cat 模型的所有外键吗?
  • @SunderamDubey 是的。
  • 请看下面的答案。

标签: python django django-models django-queryset


【解决方案1】:

要从视图中的 Owner 实例中获取所有 Cat 实例,您可以执行以下操作:

first_owner = get_object_or_404(Owner,id=1)

all_instances = first_owner.cat_set.all()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-25
    • 1970-01-01
    • 2018-07-24
    • 2014-09-05
    • 1970-01-01
    • 1970-01-01
    • 2014-08-12
    • 1970-01-01
    相关资源
    最近更新 更多