Как улучшить время загрузки администратора с большой таблицей - PullRequest
0 голосов
/ 03 мая 2019

У меня есть большая таблица, которая в настоящее время содержит около 400 тыс. Страниц, и она постоянно растет. Страница администратора дошла до того, что время ожидания при попытке ее просмотра просто истекло. Я добавил paginator, но это не помогло. Любые предложения будут оценены.

class MyAdmin(admin.ModelAdmin):
    ...
    paginator = LargeTablePaginator
    ...

class LargeTablePaginator(Paginator):
    @property
    def count(self):
        query = self.object_list.query
        if not query.where:
            cursor = connection.cursor()
            cursor.execute('SELECT reltuples FROM pg_class WHERE relname = %s', [query.model._meta.db_table])
            return int(cursor.fetchone()[0])

Я также пытался обновить метод get_queryset, чтобы он возвращал данные только за предыдущие 24 часа, но это также не улучшило время загрузки

def get_queryset(self, request):
    return super(MyAdmin, self).get_queryset(request).filter(created_on__gte=datetime.datetime.today())

моя модель

class MyModel(models.Model):

    class Meta:
        db_table = "model_table"

    name = models.CharField(unique=True, max_length=255, blank=True)
    created_on = models.DateTimeField(auto_now_add=True, null=True)
    content = models.CharField(max_length=512, blank=True)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...