Django ORM,从三个表中获取变量

时间:2018-01-22 15:09:12

标签: django join orm

我基本上试图在Django的一行中进行两次连接,但我似乎无法找到解决方案。您可以在下面看到 models.py

month param

我想过滤姓史密斯的人,并显示他们的姓名,出生日期,街道名称和城市名称。 我到目前为止:

@user_spendings_month

这不起作用,因为值'address__city__name'的最后一部分。我试图弄清楚如何以其他方式获得城市名称,但我似乎无法弄清楚这一点。有什么建议吗?

1 个答案:

答案 0 :(得分:2)

您的查询是正确的,必须执行。但是,您可以使用 select_related 对其进行更优化。

obj = Person.objects.filter(surname='Kumar').select_related('address','address__city').values('name','birthdate','address__name','address__city__name')

enter image description here