1

我很抱歉标题,但这是我能解释它的最好方式。

我有一个trips模型,它具有in_flightsout_flights关联到一个Client.

我想显示现在Clients之后哪些旅行,所以我做了以下事情:

ClientsArriving = Client.objects.filter(trip__in_flight__date__gt=timezone.now())
ClientsLeaving = Client.objects.filter(trip__out_flight__date__gt=timezone.now()) 
ClientsDash = ClientsLeaving | ClientsArriving

问题是,如果一个客户端有一个in_flight和一个out_flight在同一个trip,它会显示两次。

我怎样才能显示trip唯一的一次?

4

1 回答 1

0

您可以将查询集组合在一起并添加distinct

ClientsDash = ( 
    Client.objects
    .filter(trip__in_flight__date__gt=timezone.now())
    .filter(trip__out_flight__date__gt=timezone.now())
    .distinct()
)

参考:

于 2020-03-10T18:50:36.267 回答