Kontrol Halaman di ListView
Tambahkan tautan berikutnya/sebelumnya di templat
Kontrol Halaman di ListView adalah pelajaran Django Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Django Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Django Academy mencakup 4 pelajaran total.
Bagian dari pelajaran ini belum diterjemahkan dan ditampilkan dalam bahasa Inggris.
Pagination Built In
Good news: ListView can paginate for you. You barely write any code, and Django handles slicing the queryset into pages automatically. 🚀
Set paginate_by
Just add one attribute. Setting paginate_by tells the ListView how many items each page should show.
class ArticleList(ListView):
model = Article
paginate_by = 10The page_obj Variable
With pagination on, your template receives a page_obj. It is the same Page object you met before, ready to loop and inspect.
Looping the Current Page
In the template, iterate page_obj to show only this page's items. Django already sliced the queryset for you.
{% for article in page_obj %}
{{ article.title }}
{% endfor %}Reading the Page Number
ListView pulls the page number from the ?page= query string in the URL, so a link to ?page=2 shows the second page.
Show a Previous Link
Guard the back link with has_previous so it only appears when there really is an earlier page to visit.
{% if page_obj.has_previous %}
Prev
{% endif %}Link to the Previous Page
Inside that block, build the href using previous_page_number so the link points one page back.
<a href="?page={{ page_obj.previous_page_number }}">Prev</a>Show a Next Link
Mirror the logic for forward navigation. Wrap the next link in a has_next check so it hides on the final page.
{% if page_obj.has_next %}
Next
{% endif %}Display Page X of Y
Reassure users with a counter. Combine number and the paginator's num_pages to print "Page 2 of 5".
Page {{ page_obj.number }} of {{ page_obj.paginator.num_pages }}Custom Context Name
Prefer a friendlier loop variable? Set context_object_name and Django names the page list whatever you choose.
context_object_name = 'articles'Putting It Together
One attribute plus a small template block gives you full page controls: prev, next, and a position counter, with no view logic to write.
Quick Check
Your ListView template needs the current page's items.
Recap
You enabled pagination with paginate_by, looped page_obj, and built prev/next links guarded by has_previous and has_next. Clean lists, zero view code. 🎉
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Kontrol Halaman di ListView” gratis?
Ya — teks lengkap “Kontrol Halaman di ListView” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Django Academy, upgrade ke CoddyKit PRO. Kursus Django Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Kontrol Halaman di ListView”?
Tambahkan tautan berikutnya/sebelumnya di templat Kamu berlatih Django Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Django Academy?
Tidak diperlukan pengalaman sebelumnya. Django Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Kontrol Halaman di ListView” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Django Academy ini?
Ya. Setiap pelajaran Django Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Kelas Paginator
- Kontrol Halaman di ListView
- Menulis TestCase dan Pernyataan
- Klien Pengujian dan Data Awal