Известно, что представления списков администраторов Django становятся довольно медленными, когда в таблицах базы данных есть много строк. Это связано с тем, что по умолчанию для почтового индекса Django используется (медленный) запрос PostgreSQL COUNT
.Как ускорить страницы администрирования Django с оценками count PostgreSQL?
Как оценка будет хорошо для нас, и это гораздо быстрее, например: SELECT reltuples FROM pg_class WHERE relname = "my_table_name"
Существует фрагмент кода доступны, чтобы исправить эту проблему, но пока непонятно мне, как на самом деле использовать его: https://djangosnippets.org/snippets/2593/
Кроме того, фрагмент не должен работать с отфильтрованными результатами. Это потому, что подсчет оценки, как показано выше, здесь не работает. Есть ли другой способ ускорить просмотренные просмотры списков в страницах администрирования Django?
Я вижу, как использовать его; но ни один скрипт не работает с Django 1.10. Ваш ответ возвращает ошибку «Объект CachingPaginator не имеет атрибута« _count »- исходный скрипт возвращает объект« LargeTableChangeList »не имеет атрибута« query_set »- любые идеи? –
Спасибо за обновление. К сожалению, все еще не работает. Переименован '_count' в' count'. Теперь я получаю ошибку «превышение максимальной глубины рекурсии при вызове объекта Python» для строки 'if self.count is None:' - как в вашем, так и в другом фрагменте. –
Я думаю, что мы сейчас далеки от первоначальной сферы вопроса, а именно о том, как использовать этот фрагмент, и мы считаем, что это более чем адекватно. Пожалуйста, задайте новый вопрос, говорящий, что вы используете этот фрагмент (включая код в самом вопросе) вместе с ошибкой – e4c5