Implement basic paging

This commit is contained in:
Sascha Ißbrücker 2019-06-29 09:15:07 +02:00
parent 9eefd479c6
commit 0177660cf6
2 changed files with 21 additions and 1 deletions

View File

@ -22,4 +22,13 @@
</li> </li>
{% endfor %} {% endfor %}
</ul> </ul>
<div class="pagination">
{% if bookmarks.has_next %}
<a href="?page={{ bookmarks.next_page_number }}">< Older</a>
{% endif %}
{% if bookmarks.has_previous %}
<a href="?page={{ bookmarks.previous_page_number }}">Newer ></a>
{% endif %}
</div>
{% endblock %} {% endblock %}

View File

@ -1,3 +1,4 @@
from django.core.paginator import Paginator
from django.http import HttpResponseRedirect, HttpRequest from django.http import HttpResponseRedirect, HttpRequest
from django.shortcuts import render from django.shortcuts import render
from django.urls import reverse from django.urls import reverse
@ -5,14 +6,24 @@ from django.urls import reverse
from bookmarks.models import Bookmark, BookmarkForm from bookmarks.models import Bookmark, BookmarkForm
from bookmarks.services.bookmarks import create_bookmark, update_bookmark from bookmarks.services.bookmarks import create_bookmark, update_bookmark
_default_page_size = 30
def index(request): def index(request):
page = request.GET.get('page')
paginator = Paginator(_get_bookmark_list(), _default_page_size)
bookmarks = paginator.get_page(page)
context = { context = {
'bookmarks': Bookmark.objects.all() 'bookmarks': bookmarks
} }
return render(request, 'bookmarks/index.html', context) return render(request, 'bookmarks/index.html', context)
def _get_bookmark_list():
return Bookmark.objects.order_by('-date_added')
def new(request: HttpRequest): def new(request: HttpRequest):
if request.method == 'POST': if request.method == 'POST':
form = BookmarkForm(request.POST) form = BookmarkForm(request.POST)