当我单击“下一步”时,未显示应在下一页上显示的对象。
但是对象将显示在第一页。(即,对象的数量也正确)
views.py的第5行中的“页面”又是什么?
views.py
def search(request):
context ={}
search_list = Search.objects.all()
paginator = Paginator(search_list, 4) # Show 4 contacts per page
page = request.GET.get('page', 1)
search = paginator.get_page(page)
context['search'] = search
return render(request, "main.html", context)
main.html(模板)
{% for result in search %}
<br>
{{ forloop.counter }}
<br>
{{ result.Query }}
<!-- {{ search.Result.name }} -->
<br>
{{ result.json }}
<br>
<br>
{{ result.json.name }}
<br>
<br>
{{ result.json.price }}
<br>
<br>
{{ result.json.author }}
<br>
{% endfor %}
<div class="pagination">
<span class="step-links">
{% if search.has_previous %}
<a href="?page=1">« first</a>
<a href="?page={{ search.previous_page_number }}">previous</a>
{% endif %}
<span class="current">
{{ posts.paginator.count }}
Page {{ search.number }} of {{ search.paginator.num_pages }}.
</span>
{% if search.has_next %}
<a href="?page={{ search.next_page_number }">next</a>
<a href="?page={{ search.paginator.num_pages }}">last »</a>
{% endif %}
</span>
</div>
答案 0 :(得分:0)
您只需执行page = request.GET.get('page', 1)
而不是page = request.GET.get('page')
如果get_page()
不存在或包含非整数值,则下一行的request.GET['page']
方法将显示第一页。
查看您的模板:
<a href="?page={{ search.next_page_number }">next</a> // missing closing bracket
<a href="?page={{ search.next_page_number }}">next</a>