我的代码看起来像this answer,但我坚持使用URLconf。 我安装了一个应用程序,分页应该在索引视图上。目前的正则表达式是:
url(r'^$', views.IndexView.as_view(), name='index')
(line from urls.py)
我认为我的分页不起作用因为我总是得到相同的结果,无论哪个页面。 我希望我能够清楚直言,所以你快速给我答复,谢谢! :)
views.py
class IndexView(generic.ListView):
template_name = 'polls/index.html'
paginate_by = 3
queryset = models.Poll.objects.all()
urls.py
urlpatterns = patterns('',
url(r'^$', views.IndexView.as_view(), name='index'),
url(r'^(?P<pk>\d+)/$', views.PollView.as_view(), name='poll'),
)
的index.html
{% if poll_list %}
<ul>
{% for poll in poll_list %}
<li><a href="{% url 'polls:poll' poll.id %}">{{ poll.p_date }}</a></li>
<p>{{ poll.p_content }}</p>
</li>
{% endfor %}
</ul>
{% if is_paginated %}
<div class="pagination">
<span class="page-links">
{% if page_obj.has_previous %}
<a href="?p={{ page_obj.previous_page_number }}">previous</a>
{% endif %}
<span class="page-current">
Page {{ page_obj.number }} of {{ page_obj.paginator.num_pages }}
</span>
{% if page_obj.has_next %}
<a href="?p={{ page_obj.next_page_number }}">next</a>
{% endif %}
</span>
</div>
{% endif %}
{% else %}
<p>No polls.</p>
{% endif %}
答案 0 :(得分:0)
如果我没记错的话,分页的GET变量称为page
,不是 p
(正如您在模板中使用的那样。尝试将其更改为:
<span class="page-links">
{% if page_obj.has_previous %}
<a href="?page={{ page_obj.previous_page_number }}">previous</a>
{% endif %}
<span class="page-current">
Page {{ page_obj.number }} of {{ page_obj.paginator.num_pages }}
</span>
{% if page_obj.has_next %}
<a href="?page={{ page_obj.next_page_number }}">next</a>
{% endif %}
</span>