Пример #1
0
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)