Django ORM - использовать SubQuery в предложении FROM - PullRequest
0 голосов
/ 11 июля 2019

Цель: использовать функцию RowNumber, чтобы получить число для каждой строки, после этого отфильтровать по значению, но сохранить соответствующий RowNumber, указанный, когда фильтр не применяется, поскольку в противном случае RowNumber всегда будет возвращать 1.

Перед переводом на Django ORM я нахожу, что это помогает получить синтаксис SQL, а именно:

SELECT rn.row_number, name 
FROM ( SELECT ROW_NUMBER() OVER (ORDER BY name), name
       FROM customer ) as rn
WHERE name = 'Juan' 

Проблема Я не могу перевести это на Django ORM. Я пробовал следующее:

subq = models.Customer.objects.all().annotate(
            rank=Window(
                expression=RowNumber(),
                order_by=(F('name'))
            )
           )

Здесь я не знаю, как продолжить. Как мне указать моим models.Customer использовать subq в качестве FROM в своем запросе?

...