Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python django orm获取外键值_Python_Django_Orm - Fatal编程技术网

Python django orm获取外键值

Python django orm获取外键值,python,django,orm,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") 我需要的结果集

我有两张桌子

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()

这将给我两个结果,我将两者结合起来。当我想在不按id过滤的情况下获取表A中的所有记录时,我会使用什么。(在orm中没有for循环)

“当我想获取表A中的所有记录时,我会使用什么”你是什么意思?您希望从哪个实例获取这些记录?从b实例中,您只能从a实例中获得一条记录,因为有外键。当我想获取表a中的所有记录时,我会使用什么-
a.objects.all()
?@hoefling我需要与b表中的相关记录一起使用?在表a中,不能从b实例中获得多条记录,b从a实例中获得一条
外键。。但是,使用
多个域
,您可以