ویدیو آموزش صفحه بندی اطلاعات در جنگو
در این ویدیو با نحوه صفحه بندی اطلاعات در جنگو آشنا میشوید. برای صفحه بندی اطلاعات از کلاس Paginatior استفاده میشود.
برای صفحه بندی اطلاعات در class based viewها به شکل زیر کار میکنید:
from django.views.generic import ListView
from myapp.models import Contact
class ContactList(ListView):
paginate_by = 2
model = Contact
و برای صفحه بندی در function base viewها به شکل زیر:
from django.core.paginator import Paginator
from django.shortcuts import render
from myapp.models import Contact
def listing(request):
contact_list = Contact.objects.all()
paginator = Paginator(contact_list, 25) # Show 25 contacts per page.
page_number = request.GET.get('page')
page_obj = paginator.get_page(page_number)
return render(request, 'list.html', {'page_obj': page_obj})
بعد از تکه کردن آبجکت ها در view میتوانید اطلاعات را در template نشان دهید:
{% for contact in page_obj %}
{# Each "contact" is a Contact model object. #}
{{ contact.full_name|upper }}<br>
...
{% endfor %}
<div class="pagination">
<span class="step-links">
{% if page_obj.has_previous %}
<a href="?page=1">« first</a>
<a href="?page={{ page_obj.previous_page_number }}">previous</a>
{% endif %}
<span class="current">
Page {{ page_obj.number }} of {{ page_obj.paginator.num_pages }}.
</span>
{% if page_obj.has_next %}
<a href="?page={{ page_obj.next_page_number }}">next</a>
<a href="?page={{ page_obj.paginator.num_pages }}">last »</a>
{% endif %}
</span>
</div>
ارسال نظر