Pagination Step by Step
মডেল তৈরি
# myapp/models.py
from django.db import models
class Item(models.Model):
name = models.CharField(max_length=100)
description = models.TextField()
def __str__(self):
return self.name
ডাটাবেস অপডেট
python manage.py makemigrations
python manage.py migrate
Views.py
# পেজিনেটর import
from django.core.paginator import Paginator
from django.shortcuts import render
from .models import Item
def item_list(request):
# সমস্ত আইটেম লোড করুন
item_list = Item.objects.all()
# পেজিনেটর তৈরি করুন এবং প্রতি পেজে 10 টি আইটেম দেখান
paginator = Paginator(item_list, 10) # প্রতি পেজে 10 টি আইটেম
# ব্যবহারকারীর যদি পেজ নম্বর প্রদান করেন, তাহলে তার জন্য ওই পেজ থেকে আইটেম নিন
page = request.GET.get('page')
items = paginator.get_page(page)
# টেমপ্লেটে ডাটা পাঠান
return render(request, 'item_list.html', {'items': items})
html
<!-- myapp/templates/item_list.html -->
{% for item in items %}
<h2>{{ item.name }}</h2>
<p>{{ item.description }}</p>
{% endfor %}
<div class="pagination">
<span class="step-links">
{% if items.has_previous %}
<a href="?page=1">« first</a>
<a href="?page={{ items.previous_page_number }}">previous</a>
{% endif %}
<span class="current">
Page {{ items.number }} of {{ items.paginator.num_pages }}.
</span>
{% if items.has_next %}
<a href="?page={{ items.next_page_number }}">next</a>
<a href="?page={{ items.paginator.num_pages }}">last »</a>
{% endif %}
</span>
</div>