dynamic pagination in django Archives - Tech Insights Unveiling Tomorrow's Tech Today, Where Innovation Meets Insight Tue, 30 Aug 2022 16:20:00 +0000 en-US hourly 1 https://wordpress.org/?v=6.6.2 https://i0.wp.com/reactconf.org/wp-content/uploads/2023/11/cropped-reactconf.png?fit=32%2C32&ssl=1 dynamic pagination in django Archives - Tech Insights 32 32 230003556 How to Add Pagination in Django Python https://reactconf.org/how-to-add-pagination-in-django-python/ https://reactconf.org/how-to-add-pagination-in-django-python/#respond Tue, 30 Aug 2022 16:20:00 +0000 https://labpys.com/?p=435 In this tutorial we will discuss How to Add Pagination in Django Python Web application. What is Pagination – Pagination is the process of distributing a website’s content across multiple …

The post How to Add Pagination in Django Python appeared first on Tech Insights.

]]>
In this tutorial we will discuss How to Add Pagination in Django Python Web application.

What is Pagination – Pagination is the process of distributing a website’s content across multiple pages.

Django has a  built in Paginator class.

How to Use – First we need to import it “Paginator class” from django.core.paginator.  

models.py

from django.db import models

# Create your models here.

class MenuList(models.Model):
    Menucode= models.IntegerField()
    MenuType=models.IntegerField()
    menuname = models.CharField(max_length=100)
    submenuname = models.CharField(max_length=100)
    menulink = models.CharField(max_length=100)

    def __str__(self):
        return self.menuname
    
    objects = models.Manager()

urls.py

from django.contrib import admin
from django.urls import path
from .views import Menu_list

urlpatterns = [
    path("",Menu_list,name="Employee"),    
]

views.py

from django.shortcuts import render
from .models import MenuList
from django.core.paginator import Paginator,PageNotAnInteger,EmptyPage

# Create your views here.

def Menu_list(request):

    Result_set = MenuList.objects.all()
        
    page_list = request.GET.get('page',1)
    pages = Paginator(Result_set,5)

    try:
        result_page = pages.page(page_list)

    except PageNotAnInteger:
        result_page = pages.page(1)

    except EmptyPage:
        result_page = pages.page(pages.num_pages)

    return render(request,'menulist.html',{'menulist':result_page})
    
<html>
<head>
      <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.0/css/bootstrap.min.css">
      <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.0/js/bootstrap.min.js"></script>     
      <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>     
   
</head>
<body>
  <div class="container"> 
    <div class="shadow p-3 mb-5 bg-grey rounded"> 

<table class="table table-bordered">
    <thead>
      <tr>
        <th> SLNo </th>
        <th> Menu Name</th>
        <th> Sub Menu Name</th>
      </tr>
    </thead>
 <tbody>
    {% for menu in menulist  %}
    <tr>
      <td>{{ menu.Menucode }}  </td>
      <td>{{ menu.menuname }}  </td>
      <td> {{ menu.submenuname }} </td>
    </tr>
    {% endfor %} 
 </tbody>
</table>
 
<ul class="pagination">
  {% if menulist.has_previous %}
    <li class="page-item"><a href="?page={{ menulist.previous_page_number }}">Previous</a></li>
  {% else %}
    <li class="page-item disabled"><span>Previous</span></li>
  {% endif %}
  {% for k in menulist.paginator.page_range %}
   {% if menulist.number == k %}
   <li class="page-item active"><span>{{ k }}<span class="sr-only">(current)</span></span></li>
   {% else %}
   <li class="page-item"><a href="?page={{k}}">{{k}}</a></li> 
   {% endif %}
   {% endfor %}
   {% if menulist.has_next %}
   <li class="page-item"><a href="?page={{ menulist.next_page_number }}">Next</a></li> 
   {% else %}
   <li class="page-item disabled"><span>Next</span></li>
 
   {% endif %}

</ul>
</div>
</div>
</body>

</html>

The post How to Add Pagination in Django Python appeared first on Tech Insights.

]]>
https://reactconf.org/how-to-add-pagination-in-django-python/feed/ 0 435