File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -79,7 +79,10 @@ class Meta:
7979 )
8080
8181 def get_vessels (self , obj ):
82- vessels = Ferry .objects .filter (route_id = obj .route_id ).order_by ("priority" )
82+ if hasattr (obj , 'vessels_list' ):
83+ vessels = obj .vessels_list
84+ else :
85+ vessels = Ferry .objects .filter (route_id = obj .route_id ).order_by ("priority" )
8386 return FerryVesselSerializer (vessels , many = True ).data
8487
8588 def get_id (self , obj ):
Original file line number Diff line number Diff line change 66
77
88class FerryAPI (CachedListModelMixin ):
9- queryset = Ferry .objects .distinct ( 'route_id' )
9+ queryset = Ferry .objects .all ( )
1010 serializer_class = FerryRouteSerializer
1111 cache_key = CacheKey .FERRY_LIST
1212 cache_timeout = CacheTimeout .FERRY_LIST
1313
14+ def fetch_list_data (self , queryset = None ):
15+ qs = Ferry .objects .all ().order_by ('route_id' , 'priority' )
16+ routes = {}
17+ for ferry in qs :
18+ if ferry .route_id not in routes :
19+ ferry .vessels_list = []
20+ routes [ferry .route_id ] = ferry
21+
22+ routes [ferry .route_id ].vessels_list .append (ferry )
23+
24+ return self .get_serializer (list (routes .values ()), many = True ).data
25+
1426class FerryViewSet (FerryAPI , viewsets .ReadOnlyModelViewSet ):
1527 pass
1628
You can’t perform that action at this time.
0 commit comments