【发布时间】:2018-07-30 07:11:03
【问题描述】:
我有两个 Django 表:A 和 B。它们之间存在many2many关系,写在表A中。
我遇到的问题是,当我将其作为 API 提供并将对象显示为 A.objects.all().values() 时,B 的值不会显示。
我想用many2many关系的ids注释Django表A,这样我可以在我做A.objects.all().values()的时候拉它们,得到A.B_ids=['134','141','1414']。
例如,这可以,但我有一种直觉,每当我在 Django 中进行迭代时,它可以做得更快:
@api_view(['GET'])
def pull_tasks():
a_values = list(A.objects.all().values())
for a in a_values:
a['b_values'] = (A.objects.get(id=a['id']).b.all().values())
return Response(a_values, status=status.HTTP_200_OK)
【问题讨论】:
-
我觉得使用
.values()很奇怪。这通常仅用于对 cmets 执行特定选择。但是,我认为您在错误的层解决了问题:这通常是使用序列化程序的地方。 -
请参见此处的示例:stackoverflow.com/a/33439544/67579。你能分享一下 API 的当前方法吗?
-
检查问题的新编辑。
-
编辑没有帮助。这不是值的工作,而是序列化程序的工作。