Added pagination

This commit is contained in:
JKuijperM 2026-01-27 18:35:40 +01:00
parent 9e2c4f17db
commit 89b9a6b016
2 changed files with 26 additions and 2 deletions

View File

@ -51,7 +51,7 @@
</tr>
</thead>
<tbody>
{% for expense in expenses %}
{% for expense in page_obj %}
<tr>
<td>{{ expense.date }}</td>
<td>{{ expense.category.name }}</td>
@ -67,6 +67,23 @@
</tr>
{% endfor %}
</tbody>
</table>
</table>
<div class="pagination">
<span class="step-links">
{% if page_obj.has_previous %}
<a href="?page=1{% if selected_year %}&year={{ selected_year }}{% endif %}{% if selected_month %}&month={{ selected_month }}{% endif %}{% if selected_category %}&category={{ selected_category }}{% endif %}">&laquo; Primero</a>
<a href="?page={{ page_obj.previous_page_number }}{% if selected_year %}&year={{ selected_year }}{% endif %}{% if selected_month %}&month={{ selected_month }}{% endif %}{% if selected_category %}&category={{ selected_category }}{% endif %}">Anterior</a>
{% endif %}
<span>Página {{ page_obj.number }} de {{ page_obj.paginator.num_pages }}</span>
{% if page_obj.has_next %}
<a href="?page={{ page_obj.next_page_number }}{% if selected_year %}&year={{ selected_year }}{% endif %}{% if selected_month %}&month={{ selected_month }}{% endif %}{% if selected_category %}&category={{ selected_category }}{% endif %}">Siguiente</a>
<a href="?page={{ page_obj.paginator.num_pages }}{% if selected_year %}&year={{ selected_year }}{% endif %}{% if selected_month %}&month={{ selected_month }}{% endif %}{% if selected_category %}&category={{ selected_category }}{% endif %}">Último &raquo;</a>
{% endif %}
</span>
</div>
</body>
</html>

View File

@ -5,6 +5,7 @@ from .forms import ExpenseForm
from django.db.models import Sum
from django.contrib.auth import login
from django.core.paginator import Paginator
from django.utils.ipv6 import is_valid_ipv6_address
from django.db.models.functions import ExtractMonth, ExtractYear
@ -121,6 +122,11 @@ def expense_list(request):
categories = Category.objects.filter(owner=request.user).order_by('name')
# Pagination
paginator = Paginator(expenses, 10)
page_number = request.GET.get('page')
page_obj = paginator.get_page(page_number)
return render (
request,
'expenses/expense_list.html',
@ -130,6 +136,7 @@ def expense_list(request):
'selected_year': year,
'selected_month': month,
'selected_category': category,
'page_obj': page_obj,
},
)