Django - 将相关字段附加到查询集

时间:2011-11-18 18:52:17

标签: django models django-queryset

我有两种模式:

class A(models.Model):
    # fields

class B(models.Model):
    a       = models.ForeignKey(A)
    name    = models.CharField(max_length=64)

我想要做的是除了来自B的相关对象之外还从A获取过滤后的查询集,并将它们附加到A的查询集中,这样我就能以这种方式访问​​name字段:{ {1}}

知道怎么做吗?

1 个答案:

答案 0 :(得分:2)

问题在于,由于关系是一对多关系,A不只有一个B,而是一个b_set

你可以这样:

for b in a.b_set.all():
    b.name

但你不能只引用B,因为这个概念不存在。但是,如果您使用过OneToOneField。然后你可以很容易地做到:

a.b.name

因为每个B只有一个A。但是,您必须在实际关系发生后对对象进行建模,而不是更喜欢 api的工作方式。