при поиске в Джанго не работает пагинация - PullRequest
0 голосов
/ 16 марта 2019

Нумерация страниц не работает во время поиска.

views.py:

def crud(request):

    user_list = User.objects.all()
    paginator = Paginator(user_list, 3)
    page = request.GET.get('page')
    users = paginator.get_page(page)
    return render(request, 'crud/crud.html', {'users': users})


def search(request):

    users = None
    fname = request.POST.get('search')
    try:
        user_list = User.objects.filter(first_name__startswith=fname) | 
        User.objects.filter(last_name__startswith=fname)
        paginator = Paginator(user_list, 3)
        page = request.GET.get('page')
        users = paginator.get_page(page)
    except:
        pass
    return render(request, 'crud/crud.html', {'users': users}, {'fname': fname})

Crud.html:

<form name="myform" method="POST" action="{% url 'search' %}">

{% csrf_token %}

         <input type="text" name="search" value="{{ fname }}" 

         placeholder="Search  name"/>

</form>

Как это исправить?

1 Ответ

0 голосов
/ 17 марта 2019

Вам не нужно пробовать фильтр в Django. Результатом является каждый раз, когда запрос.

так что это должно работать нормально и нормально работать для меня:

users = None
fname = request.POST.get('search')
user_list = User.objects.filter(first_name__startswith=fname)
paginator = Paginator(user_list, 3)
page = request.GET.get('page')
users = paginator.get_page(page)
return render(request, 'crud/crud.html', {'users': users, 'fname': fname})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...