Simple pagination app that saves your time.
Project description
django-cool-pagination
django-cool-pagination is simple pagination app that saves your time.
WARNING:
The project is still on development stage, some things may not work properly.
Prerequisites
Currently it supports Bootstrap 4.x only. So that you have to add Bootstrap4 to your project.
Features
- Dynamic query string creation
- Length auto control
- Fully customizable (aspiring)
Installation
Installing
pip
pip install django-cool-pagination
setup.py
git clone https://github.com/joe513/django-cool-pagination.git
cd django-cool-pagination
python setup.py install
Setting up
Add to INSTALLED_APPS
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django_cool_paginator'
Make sure request
is in context_processors
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
Using
View
FBV (Function based view)
def listing(request):
contact_list = Contacts.objects.all()
paginator = Paginator(contact_list, 25)
page = request.GET.get('page')
page_obj = paginator.get_page(page)
return render(request, 'list.html', {'page_obj': page_obj})
CBV (Class based view)
class Listing(ListView):
model = Item
paginate_by = 5
Template
{% load cool_paginate %}
{% for contact in page_obj %}
...
{% endfor %}
{% cool_paginate page_obj=ENTER HERE YOUR PAGE OBJECT! %}
Note: You don't have to specify
page
if its name ispage_obj
as default.
Customization
You can customize it so that it works as you want. Customize it by defining settings either in setting.py or
inside of {% cool_paginate %}
setting.py
COOL_PAGINATOR_NEXT_NAME
- Name for "next" button in pagination bar.
COOL_PAGINATOR_PREVIOUS_NAME
- Name for "previous" button in pagination bar
COOL_PAGINATOR_SIZE
- Size of pagination bar (choose: "LARGE" or "SMALL")
COOL_PAGINATOR_ELASTIC
- What page width is elastic mode enabled from?
{% cool_paginate page_obj next_name previous_name size elastic %}
page_obj
- Type here your page object.
next_name
- Name for "next" button in pagination bar.
previous_name
- Name for "previous" button in pagination bar
size
- Size of pagination bar (choose: "LARGE" or "SMALL")
elastic
- What page width is elastic mode enabled from?
Note:
{% cool_paginate %}
has a priority, django-cool-pagination will firstly look at this, after at setting.py
License
This project is licensed under the MIT License - see the LICENSE file for details
inspired by inoks/m3u8
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
Hashes for django-cool-pagination-0.3.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | bdafc0d9e661f1d39348c05d9874b82af8d2274696f1e5ba1cb880461b736476 |
|
MD5 | 2d8edd001a6abe1a5008f6689fb04d12 |
|
BLAKE2b-256 | df3ff4d24622d5b7c57e8cff246cf6052e7f51a1f985d9bb4f574fb3a533e107 |