Django Pagination Текущая страница в View.py

Я использую пагинацию в Django, но использую AJAX, поэтому я должен отправить все значения переменных из представления в вызов AJAX. Но для текущей страницы нет встроенной переменной? Как я видел официальную документацию. Так как же отправить эти данные уже рассчитанным в view.py?

 <span class="current">
        Page {{ contacts.number }} of {{ contacts.paginator.num_pages }}.
    </span>

Ссылка на ссылку Следуя этому примеру

3 ответа

Используйте Django бесконечную нумерацию страниц http://django-endless-pagination.readthedocs.io/en/latest/twitter_pagination.html

Единственный разумный способ сделать теги шаблона pagination/ajax/django - это сгенерировать всю таблицу + данные текущей страницы + навигацию по таблице и т. Д. В представлении django. Т.е. переместите все переменные для таблицы с содержащей ее страницы в представление для таблицы.

Вероятно, лучшее решение - найти себе компонент таблицы javascript и использовать django для передачи данных...

Вместо создания двух разных представлений вы можете доставлять содержимое с разбивкой по страницам из одного представления, добавив параметр GET в URL, чтобы проверить номер страницы и отправив запрос ajax в одно и то же представление. Таким образом, будет проще управлять одним представлением вместо двух для одного и того же контента. И если ваше представление делает гораздо больше, чем генерирует конкретный контент, когда вы используете ajax, вы можете легко разделить представление так, чтобы одно представление доставляло только связанный контент.

Например, если URL вашего представления \url-to-somepageВы можете отправить запрос AJAX \url-to-somepage?page=2

Затем в вашем файле шаблона, скажем template.html, include другой шаблон, скажем __sub_template.html для контента, который будет разбит на страницы. Подобно,

<div>
    <!--
        rest of the page
    -->
    {% include 'templates\__sub_template.html' %}
</div>

Тогда, по вашему мнению,

.def your_view(request):
    """
    Your code here
    """
    paginator = Paginator(contacts, number)
    page = request.GET.get('page')
    try:
        result_list = paginator.page(page)
    except PageNotAnInteger:
        result_list = paginator.page(1)
    except EmptyPage:
        result_list = []
    if page:
        return render(request, '__sub_template.html', {'contacts': result_list})
    else:
        return render(request, 'template.html', {'contacts': result_list})
Другие вопросы по тегам