Django Paginator выдает ошибку __init __ (), пропуская 2 обязательных позиционных аргумента: 'number' и 'paginator' - PullRequest
0 голосов
/ 30 марта 2019

Я использовал следующий код из документации Django, и по какой-то причине код не работает

<div class="pagination">
 <span class="step-links">
        {% if productsList.has_previous %}
            <a href="?page=1">&laquo; first</a>
            <a href="?page={{ products.previous_page_number }}">previous</a>
        {% endif %}

        <span class="current">
            Page {{ productsList.number }} of {{ productsList.paginator.num_pages }}.
        </span>

        {% if productsList.has_next %}
            <a href="?page={{ productsList.next_page_number }}">next</a>
            <a href="?page={{ productsList.paginator.num_pages }}">last &raquo;</a>
        {% endif %}
    </span>
</div>

Когда я перехожу на страницу, я получаю сообщение об ошибке:

__init__() missing 2 required positional arguments: 'number' and 'paginator'

Странный!Я также попытался передать URL с аргументом страницы, но он все еще не работает!

def products(request):
    products_first_ten = Products.objects.order_by('productid')[:100]    
    products_List = []
    for product in products_first_ten:
        book = Books.objects.get(productid = product.productid)
        products_List.append(book)      

    paginator = Paginator(products_List, 10) # Show 25 contacts per page
    page = request.GET.get('page', 1)
    try:
        products_List = paginator.page(page)
    except PageNotAnInteger:
        products_List = paginator.page(1)
    except EmptyPage:
        products_List = paginator.page(paginator.num_pages)

    return render(
        request, 'catalog/products.html',
        context = 
        {
            'productsList' : products_List
        }
    )
...