Django pagination tools supporting Ajax, multiple and lazy pagination, Twitter-style and Digg-style pagination.
Project description
Django Endless Pagination Vue is a fork of the excellent application django-endless-pagination created by Francesco Banconi. This application get all code of version 2.0 and update for working in django >= 1.7 in addition to migration code jquery to vue.js.
Django Endless Pagination Vue can be used to provide Twitter-style or Digg-style pagination, with optional Ajax support and other features like multiple or lazy pagination.
Documentation
Documentation is avaliable online, or in the doc directory of the project.
Installation
Via pip:
pip install django-endless-pagination-vue
Quick start
Add application ‘endless_pagination’ to INSTALLED_APPS.
Add this lines in settings.py:
from django.conf.global_settings import TEMPLATE_CONTEXT_PROCESSORS TEMPLATE_CONTEXT_PROCESSORS += ( 'django.core.context_processors.request', )
Getting started
In this example it will be implemented twitter style pagination
Base.html:
<!DOCTYPE html> <html> <head> <meta content='text/html; charset=utf-8' http-equiv='Content-Type' /> <title>{% block title %}Testing project{% endblock %} - Django Endless Pagination Vue</title> <link href="http://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/2.1.1/css/bootstrap.min.css" rel="stylesheet"> <link href="{{ STATIC_URL }}pagination.css" rel="stylesheet"> </head> <body> <div class="container"> <div class="page-header"> <h1>Django Endless Pagination Vue <small>Twitter Style</small></h1> </div> </div> <div class="row"> {% block content %}{% endblock %} </div> </div> {% block js %} <script src="https://unpkg.com/vue/dist/vue.min.js"></script> <script src="{% static 'endless_pagination/js/module.endless.js' %}"></script> {% endblock %} </body> </html>
Index.html:
{% extends "base.html" %} {% block content %} <div id="items" class="endless_page_template span12" v-endless-pagination="{'paginateOnScroll': true}"> {% include myapp/page_template.html %} </div> <script> new Vue({ el: '#items', }); </script> {% endblock %}
Page_template.html:
{% load endless %} {% paginate objects %} {% for object in objects %} <div class="well object"> <h4>{{ object.title }}</h4> {{ object.contents }} </div> {% endfor %} {% show_more "More results" %}
In the views.py:
class TwitterView(View): def get(self, request, forum, *args, **kwargs): template_name = "myapp/index.html" page_template = "myapp/page_template.html" objects = MyModel.objects.all() data = { 'objects': objects, } if request.is_ajax(): template_name = page_template return render(request, template_name, data)
In the urls.py:
url(r'^twitter/$', TwitterView.as_view(), name='twitter'),
Run server:
python manage.py runserver
Visit: 127.0.0.1:800/twitter/
This way you will be able to use the directive endless-pagination. For more examples check the official repository:
https://github.com/mapeveri/django-endless-pagination-vue/tree/master/tests
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file django-endless-pagination-vue-1.3.tar.gz
.
File metadata
- Download URL: django-endless-pagination-vue-1.3.tar.gz
- Upload date:
- Size: 52.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 77aefcf75b6bc45b0f9866c9f0383b8a38f276524eb0e28bc29cee65b20d90a9 |
|
MD5 | 99f81e238d8536c3b5851178a26e5bdd |
|
BLAKE2b-256 | 274a1a7e684d3402e6bebfd9cecc4822f501dcab1ce858cdb090d07acbabd10e |