Возможно ли добавить таблицу подзапросов в кверисет django?

Я работаю над запросом, подобным приведенному ниже; я хочу создать его как Django queryset для дальнейшей фильтрации.

select distinct on (id) id, title, weight
from (select *, 3 + ts_rank_cd(to_tsvector(title), to_tsquery('sales'), 32) as weight
      from courses
      where to_tsvector(title) @@ to_tsquery('sales')
      union all
      select *, 2 + similarity(title, 'sales') as weight
      from courses
      where title % 'sales') as union_table
order by id, weight desc

Я пробовал создать его как метод raw, но это не позволяет создавать цепочки дополнительных фильтров, а метод extra с аргументом tables не позволяет подзапросы.

Есть ли какое-либо решение, кроме использования необработанного SQL?

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