django orm获得外键值

时间:2018-05-17 20:17:02

标签: python django orm

我有两张桌子,

class A(models.Model):
    name = models.CharField(max_length=1000, unique=True)
class B(models.Model):
    name = models.CharField(max_length=1000, unique=True)
    a = models.ForeignKey(A, on_delete=models.PROTECT, related_name="a")

我需要如下结果集,

[{ "name":"a",
   "a":[
        {"name":"a1"}, {"name":"b1"}, {"name":"c1"}]
}, { "name":"b",
   "b":[
        {"name":"a2"}]
}]

样本表数据

A

id    name
------------
1    a
2    b



B

id    name   a
---------------
1    a1     1
2    b1     1
3    c1     1
4    a2     2

我如何在django orm中达到我想要的结果?我试过了

  a_ob  = A.objects.get(id=1)
  b_ob = a_ob.a.all()

这会给我两个结果,我会把两者结合起来。当我想要获取表A中的所有记录而不通过id过滤时,我将使用什么。 (没有for or循环)

0 个答案:

没有答案