def show_articles(request): """ method for getting page with articles :param request: :return TemplateResponse: param request can has tuple with GET parameters: :parameter page: show page number; default = 1 :parameter page_length: show how much articles will be on page; default = 12 """ args = {} page = 1 page_length = 12 if request.GET.get('page'): page = int(request.GET.get('page')) if request.GET.get('page_length'): page_length = int(request.GET.get('page_length')) article_query = Article.objects.all().order_by('publication_date').reverse() paginator = Paginator(article_query, page_length) articles = paginator.page(page) paginator.page_lrange = range(1, paginator.num_pages + 1) paginator.current_page = page args['articles'] = articles args['paginator'] = paginator return render(request, 'articles.html', args)