【问题标题】:ListView Django -next prev links in pagination is missing缺少分页中的 ListView Django -next prev 链接
【发布时间】:2014-04-17 16:26:45
【问题描述】:

我正在使用 django 使用 ListView 进行分页。 一切都按预期工作。但是模板上没有下一个和上一个链接。

我在这里错过了什么吗?

这里是 urls.py

from django.conf.urls import patterns, include, url
from django.contrib import admin
from django.views.generic.list import ListView
from demoapp.models import Candidate
admin.autodiscover()

urlpatterns = patterns('',

    url(r'^admin/', include(admin.site.urls)),
    url(r'^test/', ListView.as_view(
                    model=Candidate,
                    paginate_by='10',
                    queryset=Candidate.objects.all(),
                    context_object_name="tasks",                
                    template_name='index.html')),
)

models.py

from django.db import models
class Candidate(models.Model):
    name=models.CharField(max_length=255)

这里是 index.html

<ol>
{% for t in tasks %}
<li><p>{{t.name}}</p></li>
{% endfor %}
</ol>
<div class="pagination">
      <ul>
          {% if paginator.has_previous %}
              <li><a href="?page={{ paginator.previous_page_number }}">Previous</a></li>
          {% endif %}
          {% for pg in paginator.page_range %}
              {% if posts.number == pg %}
                  <li class="active"><a href="?page={{ pg }}">{{ pg }}</a></li>
              {% else %}
                  <li><a href="?page={{ pg }}">{{ pg }}</a></li>
              {% endif %}
          {% endfor %}
          {% if paginator.has_next %}
              <li><a href="?page={{ paginator.next_page_number }}">Next</a></li>
          {% endif %}
      </ul>
    </div>

【问题讨论】:

    标签: python django pagination django-class-based-views


    【解决方案1】:

    什么都没有显示,因为 Django 不知道视图模板中的 paginator 是什么。

    the example in the documentation,看来需要把视图中的paginator换成tasks——

    <div class="pagination">
      <ul>
          {% if tasks.has_previous %}
              <li><a href="?page={{ tasks.previous_page_number }}">Previous</a></li>
          {% endif %}
          {% for pg in tasks.page_range %}
              {% if posts.number == pg %}
                  <li class="active"><a href="?page={{ pg }}">{{ pg }}</a></li>
              {% else %}
                  <li><a href="?page={{ pg }}">{{ pg }}</a></li>
              {% endif %}
          {% endfor %}
          {% if tasks.has_next %}
              <li><a href="?page={{ tasks.next_page_number }}">Next</a></li>
          {% endif %}
      </ul>
    </div>
    

    【讨论】:

    猜你喜欢
    • 2012-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多