Пейджинг с помощью RawQuerySet - PullRequest
0 голосов
/ 03 ноября 2019

Я делаю необработанный SQL-запрос, используя Django. Мне нужно сделать разбиение на страницы вывода, потому что для некоторых входных данных эти запросы возвращают более 100 тыс. Результатов, что занимает очень много времени. Я не могу использовать Django ORM, потому что мой sql-запрос содержит взаимодействие с довольно специфическим плагином postgres (картридж RDKit PostgreSQL).

В настоящее время я получаю все результаты и делаю нумерацию страниц только после этого. Тем не менее, это действительно узкое место в моей программе, поскольку получение всех результатов может занять более минуты для более чем 100 000 строк.

# making a specific sql statement
sql = compose_sql_statement(parameters)
molecules = Molecule.objects.raw(sql)

paginator = Paginator(molecules, 10)
molecules_page = paginator.get_page(page)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...