@@ -178,6 +178,7 @@ def apply_order_by(
178178 order_column : str ,
179179 order_direction : str ,
180180 aliases_mapping : Dict [str , AliasedClass ] = None ,
181+ add_pk : bool = False ,
181182 ) -> Query :
182183 if order_column != "" :
183184 # if Model has custom decorator **renders('<COL_NAME>')**
@@ -201,10 +202,10 @@ def apply_order_by(
201202 _order_column = getattr (_alias , column_leaf )
202203 # get the primary key so we can add a tie breaker of the order
203204 # when the order column is not unique it can cause issues with pagination
204- pk = self .get_pk ()
205205 direction = asc if order_direction == "asc" else desc
206206 order_by_columns = [direction (_order_column )]
207- if pk :
207+ pk = self .get_pk ()
208+ if add_pk and pk :
208209 order_by_columns .append (direction (pk ))
209210 query = query .order_by (* order_by_columns )
210211
@@ -387,7 +388,11 @@ def _apply_inner_all(
387388 query = self .apply_filters (query , inner_filters )
388389 query = self .apply_engine_specific_hack (query , page , page_size , order_column )
389390 query = self .apply_order_by (
390- query , order_column , order_direction , aliases_mapping = aliases_mapping
391+ query ,
392+ order_column ,
393+ order_direction ,
394+ aliases_mapping = aliases_mapping ,
395+ add_pk = True ,
391396 )
392397 query = self .apply_pagination (query , page , page_size )
393398 return query
@@ -454,7 +459,9 @@ def apply_all(
454459 select_columns = select_columns + [order_column ]
455460 outer_query = inner_query .from_self ()
456461 outer_query = self .apply_outer_select_joins (
457- outer_query , select_columns , outer_default_load = outer_default_load
462+ outer_query ,
463+ select_columns ,
464+ outer_default_load = outer_default_load ,
458465 )
459466 return self .apply_order_by (outer_query , order_column , order_direction )
460467 else :
0 commit comments