From 6e4f9c92f3c568729b6bd767015b18c0f9eb5431 Mon Sep 17 00:00:00 2001 From: Denis Tereshkin Date: Fri, 5 May 2017 17:46:39 +0700 Subject: [PATCH] Trades: pagination --- templates/dashboard/trades.html | 7 +++++++ views.py | 17 ++++++++++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/templates/dashboard/trades.html b/templates/dashboard/trades.html index 2ff476b..4e41019 100644 --- a/templates/dashboard/trades.html +++ b/templates/dashboard/trades.html @@ -40,4 +40,11 @@ {% endfor %} + {% endblock %} diff --git a/views.py b/views.py index 2e00461..e91d9a8 100644 --- a/views.py +++ b/views.py @@ -7,6 +7,7 @@ from django.contrib import messages from django.contrib.auth.decorators import login_required from django.db import transaction from django.contrib.auth import authenticate, login, logout +from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger from .models import RobotInstance, Trade, ClosedTrade from .forms import NewTradeForm, ClosedTradeFilterForm, LoginForm @@ -123,11 +124,25 @@ def trades_index(request): now = datetime.datetime.utcnow() new_trade_form = NewTradeForm(initial={'timestamp' : now}) trades = Trade.objects.all().order_by('-timestamp') + paginator = Paginator(trades, 25) + try: + page_num = int(request.GET.get('page')) + except: + page_num = 1 + try: + trades = paginator.page(page_num) + except PageNotAnInteger: + trades = paginator.page(1) + except EmptyPage: + trades = paginator.page(1) + template = loader.get_template('dashboard/trades.html') context = { 'trades' : trades, 'new_trade_form' : new_trade_form, - 'user' : request.user + 'user' : request.user, + 'page_num' : page_num, + 'page_range' : paginator.page_range } return HttpResponse(template.render(context, request))