0

我的代码看起来像这个答案,但我被 URLconf 卡住了。我安装了一个应用程序,分页应该在索引视图上。当前的正则表达式是:

url(r'^$', views.IndexView.as_view(), name='index')
(line from urls.py)

我认为我的分页因此不起作用,因为无论哪个页面我总是得到相同的结果。我希望我是清楚和直接指出,所以你给我一个快速的答案,谢谢!:)

视图.py

class IndexView(generic.ListView):
    template_name = 'polls/index.html'
    paginate_by = 3
    queryset = models.Poll.objects.all()

网址.py

urlpatterns = patterns('',
     url(r'^$', views.IndexView.as_view(), name='index'),
     url(r'^(?P<pk>\d+)/$', views.PollView.as_view(), name='poll'),
)

索引.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 %}
4

1 回答 1

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>
于 2013-08-09T13:13:46.550 回答