我目前正在django中实现分页。当我尝试单击一个按钮,该按钮应该将我重定向回第一页,甚至获取第一页的内容时,我遇到了一个问题
views.py
else:
all_tasks = TaskList.objects.all()
paginator = Paginator(all_tasks, 5)
page = request.GET.get('pg')
all_tasks = paginator.get_page(page)
context = {
'all_tasks': all_tasks
}
return render(request, 'index.html', context)
html代码
<nav aria-label="Page navigation example">
<ul class="pagination justify-content-end">
<li class="page-item"><a class="page-link" href="?pg=1">First</a></li>
{% if all_tasks.has_previous %}
<li class="page-item"><a class="page-link" href="?pg={{ all_tasks.previous_page_number }}">{{ all_tasks.previous_page_number }}</a></li>
{% endif %}
<li class="page-item"><a class="page-link" href="?pg={{ all_tasks.number }}">{{ all_tasks.number }}</a></li>
{% if all_tasks.has_next %}
<li class="page-item"><a class="page-link" href="?pg={{ all_tasks.previous_page_number }}">{{ all_tasks.previous_page_number }}</a></li>
{% endif %}
<li class="page-item"><a class="page-link" href="?pg={{ all_tasks.paginator.num_pages }}">Last</a></li>
</ul>
</nav>
当我单击“first”时,django抛出这些错误。请帮忙。 django抛出的错误是
EmptyPage at /task/
That page number is less than 1
Request Method: GET
Request URL: http://127.0.0.1:8000/task/
Django Version: 3.1.5
Exception Type: EmptyPage
Exception Value:
That page number is less than 1
Exception Location: C:\Users\BernardMuendi\.virtualenvs\TaskMate-R1pilZ9L\lib\site-packages\django\core\paginator.py, line 50, in validate_number
Python Executable: C:\Users\BernardMuendi\.virtualenvs\TaskMate-R1pilZ9L\Scripts\python.exe
Python Version: 3.8.6
Python Path:
['C:\\Users\\BernardMuendi\\Desktop\\TaskMate\\taskmate',
'c:\\program files\\python38\\python38.zip',
'c:\\program files\\python38\\DLLs',
'c:\\program files\\python38\\lib',
'c:\\program files\\python38',
'C:\\Users\\BernardMuendi\\.virtualenvs\\TaskMate-R1pilZ9L',
'C:\\Users\\BernardMuendi\\.virtualenvs\\TaskMate-R1pilZ9L\\lib\\site-packages']
Server time: Tue, 16 Feb 2021 09:49:50 +0000
试试这个
参考https://docs.djangoproject.com/en/3.1/topics/pagination/
简单的调试过程:检查您在
page = request.GET.get('pg')
中得到了什么 下面是paginator.get_page(page)
的内部代码。所以,检查一下为什么int(number)
小于1相关问题 更多 >
编程相关推荐