我有这样的模型
Model Trip:
hotel: m2m_field to Hotel
flight: m2m_field to Flight
Model Hotel:
city: foreignkey to City
Model Flight:
city: foreignkey to City
问题是当我这样做时
Trip.objects.prefetch_related('hotel__city', 'flight__city')
它生成 5 个 sql 查询:1 个关于旅行的查询,1 个关于酒店的查询,1 个关于航班的查询,1 个关于酒店结果的城市查询,以及 1 个关于航班结果的城市查询。我可以将 City 表上的最后两个查询减少到 1 个吗?我想我可能对 ORM 要求太多,但只想知道在 ORM 或原始查询中是否有可能。