Медленная загрузка ленивых загруженных элементов с Django EL (Endless) нумерацией страниц - PullRequest
0 голосов
/ 06 февраля 2020

Я реализовал ленивую нумерацию при прокрутке в стиле Twitter в своем приложении django, используя Django EL (Endless) Pagination . Кажется, все работает нормально, но загрузка новых элементов идет очень медленно (более 5 se c в наборе запросов, который содержит 5000 записей). Что я могу сделать, чтобы улучшить время загрузки?

Мои views.py

def articles_list(request, template='articles_list.html',  page_template='articles.html'):
    qs = Article.objects.all().order_by('fb_total_engagement_count')
    qs.delete()
    form = ArticlesSearchForm(request.GET or None)
    if form.is_valid():
        api = services.Session()
        search_result = api.search(form.cleaned_data['q'])
        if not search_result['success']:
            form.add_error('q', search_result['message'])
        else:
            objs = [Article(**art) for art in search_result['articles']]
            Article.objects.bulk_create(objs)

    context = {
        'search_result': qs,
        'page_template': page_template,
        'total_interactions': qs.aggregate(Sum('fb_total_engagement_count')),
        'form': form
    }
    if request.is_ajax():
        template = page_template
    return render(request, template, context)

Часть article_list. html:

    <div class="row endless_content_wrapper">
        {% lazy_paginate search_result %}
        {% include page_template %}

    </div>

<div class="row">
    <div class="col text-center">
    {% show_more %}
    </div>
</div>

Часть статей . html:

{% if request.is_ajax %}{% lazy_paginate search_result %}{% endif %}
{% for article in search_result %}

...do stuffs 

{% endfor %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...