Requisitos necessários:
- Python >= 2.6
- Django >= 1.3
- jQuery >= 1.7
Instalação:
pip install django-endless-pagination
Configuração:
Adicione a app na setting INSTALLED_APPS no settings.py:
... 'endless_pagination', ...
Adicione a linha abaixo na setting TEMPLATE_CONTEXT_PROCESSORS também no settings.py:
... 'django.core.context_processors.request', ...
Na views.py
from django.shortcuts import render, render_to_response, get_object_or_404 from django.template import Context, loader, RequestContext from .models import Produto class ProdutoTTPag(View): def get(self, request, *args, **kwargs): template = 'produtos/lista-produtos.html' page_template = 'produtos/paginacao.html' produtos = Produto.objects.filter(ativo=True) context = { 'page_template': page_template, 'produtos_list' : produtos, } if request.is_ajax(): template = page_template return render_to_response(template, context, context_instance=RequestContext(request))
No urls.py
Adicione a linha abaixo:
... url(r'^(?P[-\w]+)/$', views.ProdutoTTPag.as_view(), name='produtos'), ...
No template:
Aqui será necessário a criação de dois arquivos html. Um para ser de fato a lista (lista-produtos.html) e o outro para ser apenas os itens, para que o ajax possa trazê-los de forma correta (paginacao.html).
lista-produtos.html:
... {% load endless %} ... {% block extra_js %} <script src="{{ STATIC_URL }}endless_pagination/js/endless-pagination.js" type="text/javascript"></script> <script type="text/javascript"> jQuery(document).ready(function($) { //$.endlessPaginate({ // paginateOnScroll: true, // paginateOnScrollChunkSize: 5, // paginateOnScrollMargin: 200 //}); $.endlessPaginate({}); }); </script> {% endblock extra_js %} ... <section class="list-products"> <ul> {% include page_template %} </ul> ... </section>
Aqui a parte comentada serve para trazer os resultados das outras páginas conforme o scroll da página.
{% load endless %} {% paginate 9 produtos_list %} {% for p in produtos_list %} <li> {# HTML PARA ITEM DO PRODUTO #} </li> {% endfor %} {% show_more %}
Mais informações em:
- http://django-endless-pagination.readthedocs.org/en/latest/index.html
- https://github.com/frankban/django-endless-pagination
- https://pypi.python.org/pypi/django-endless-pagination/2.0
hasta!
Nenhum comentário:
Postar um comentário