Почему Django упорядочивает по номеру столбца, а не по его имени?

У меня есть такой код Django ORM:

queryset.filter(filters).annotate(rank=SearchRank(vectors, search_query)).order_by('-rank').distinct()

и Django преобразует этот код в sql:

SELECT 
  DISTINCT "model_1"."id",
  ...
  ...
  ...
  ts_rank(
    "model_2"."search_vector", 
    phraseto_tsquery(query)
  ) AS "rank" 
 FROM 
   "model_1" 
 INNER JOIN "model_2" ON (
   "model_1"."id" = "model_2"."case_id"
  ) 
 WHERE 
 (
   "model_2"."search_vector" @@ (
   phraseto_tsquery(query)
 )
) 
ORDER BY 
41 ASC

Я не могу понять, почему Django использует 41 (это номер аннотированного столбца рангов) вместо имени столбца, и я не могу найти никаких документов Django, которые описывают эту логику.

Версия Django: 5.0.2

Вернуться на верх