Я пробовал аннотировать строки с помощью оконной функции RowNumber, но она срабатывает после фильтрации, соответственно, старая нумерация перетирается новой.
queryset.annotate(
num=Window(RowNumber(), order_by=F('field').asc()),
).filter(name__startswith='A')
Попробовал разбить.
Вывел только комбинации id и номера
ids_nums = queryset.annotate(
num=Window(RowNumber(), order_by=F('field').asc()),
).values('id', 'num')
И отдельно отфильтрованные строки
queryset.filter(name__startswith='A')
Но теперь задача как-то объединить эти выборки, чтобы ко строкам второй по id в первой взять num. Как это можно сделать?