Я создал приложение Django. В моем приложении есть функция фильтрации. Отфильтрованные данные отображаются на отдельной странице.
Теперь я хочу добавить Django Pagination на отфильтрованную страницу списка. Делая это, я вошел в эту ошибку. Нумерация страниц показана внизу страницы с указанием правильного количества страниц СЛЕДУЮЩАЯ.
Но при нажатии на «Следующая страница» в paginator он перенаправляет меня на мою домашнюю страницу (/employeeList).
Полагаю, это из-за HttpResponseRedirect (return HttpResponseRedirect('/employeeList'))
, который я даю внутри filter()
, который используется в некоторых случаях. Я вставлю свой фильтр () и HTML-код для разбивки на страницы.
def filter(request):
val2=''
val3=''
newData=''
if request.GET.has_key('choices'):
val2=request.GET.get('choices')
if request.GET.has_key('textField'):
val3=request.GET.get('textField')
if request.POST:
val2=request.POST.get('choices')
val3=request.POST.get('textField')
if val2=='Designation':
newData = EmployeeDetails.objects.filter(designation=val3)
flag=True
elif val2=='Name':
newData = EmployeeDetails.objects.filter(userName__icontains=val3)
flag=True
elif val2=='EmployeeID':
newData = EmployeeDetails.objects.filter(employeeID=val3)
flag=True
elif val2=='Project':
newData = EmployeeDetails.objects.filter(project=val3)
flag=True
elif val2=='DateOfJoin':
newData = EmployeeDetails.objects.filter(dateOfJoin=val3)
flag=True
else:
return HttpResponseRedirect('/employeeList')
if request.POST.get('sortAscendValue'):
newData = newData.order_by('userName')
elif request.POST.get('sortDescendValue'):
newData = newData.order_by('-userName')
paginator = Paginator(newData, 10)
try:
page = int(request.GET.get('page', '1'))
except ValueError:
page = 1
try:
contacts = paginator.page(page)
except (EmptyPage, InvalidPage):
contacts = paginator.page(0)
return render_to_response('filter.html',{'newData':newData,'emp_list': contacts,'val2':val2,'val3':val3,'flag':flag,'emp_list': contacts})
filter.html
<div class="pagination" >
<span class="step-links">
{% if emp_list.has_previous %}
<a href="?page={{ empl_list.previous_page_numbe }}">Previous</a>
{% endif %}
<span class="current">
Page {{ emp_list.number }} of {{ emp_list.paginator.num_pages }}.
</span>
{% if emp_list.has_next %}
<a href="?page={{ emp_list.next_page_number }}">Next</a>
{% endif %}
</span>
</div>