我想通过在django上使用基于类的视图来使用paginator
正如我在标题中提到的,我想使用paginator。 我编码为Django文档,但它不起作用。 原因是什么 这是我的看法我想通过在django上使用基于类的视图来使用paginator,django,pagination,class-based-views,Django,Pagination,Class Based Views,正如我在标题中提到的,我想使用paginator。 我编码为Django文档,但它不起作用。 原因是什么 这是我的看法 from django.shortcuts import render_to_response from django.views.generic import CreateView, ListView, UpdateView, DetailView from django.core.paginator import Paginator, EmptyPage, PageNotA
from django.shortcuts import render_to_response
from django.views.generic import CreateView, ListView, UpdateView, DetailView
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
from .models import Article
class ArticleListView(ListView):
model = Article
def listing(request):
article_list = Article.objects.all()
paginator = Paginator(article_list, 7)
page = request.GET.get('page')
try:
articles = paginator.page(page)
except PageNotAnInteger:
articles = paginator.page(1)
except EmptyPage:
articles = paginator.page(paginator.num_pages)
return render_to_response('blog/article_list.html', {'articles': articles})
下面是我的URL
from django.conf.urls import patterns, url
from .views import ArticleCreateView, ArticleUpdateView, ArticleListView, ArticleDetailView
urlpatterns = patterns('',
url(r'^list/$', ArticleListView.as_view(), name='list'),
)
最后是我的模板
{% extends 'base.html' %}
{% block title %} list {% endblock %}
{% block content %}
<p>
<a href="{% url "blog:create" %}">new</a>
</p>
{% for article in article_list %}
<div id="article">
<div id="author">
<p>{{ article.author }}</p>
</div>
<div id="time">
<p>{{ article.created }}</p>
</div>
<div id="body">
<p>{{ article.body }}</p>
</div>
<div id="edit">
<a href="{% url "blog:edit" article.pk %}"> modify </a>
</div>
</div>
{% endfor %}
{% for article in articles %}
{{ article.full_name|upper }}<br>
{% endfor %}
<div class="pagination">
<span class="step-links">
{% if articles.has_previous %}
<a href="?page={{ articles.previous_page_number }}">pre</a>
{% endif %}
<span class="current">
Page {{ articles.number }} of {{ articles.paginator.num_pages }}
</span>
{% if articles.has_next %}
<a href="?page={{ contacts.next_page_number }}">next</a>
{% endif %}
</span>
</div>
{% endblock %}
{%extends'base.html%}
{%block title%}列表{%endblock%}
{%block content%}
{文章列表%中的文章为%0}
{{article.author}}
{{article.created}}
{{article.body}
{%endfor%}
{文章%中的文章为%s}
{{article.full|u name | upper}}
{%endfor%}
{%if articles.has_previous%}
{%endif%}
第{{articles.paginator.num_pages}页{articles.number}共{{articles.paginator.num_pages}
{%if articles.has_next%}
{%endif%}
{%endblock%}
什么是问题??
我认为服务器无法在基于类的视图中检测def列表您是否知道
列表视图
中内置了分页功能?@Yuji'Tomita'Tomita'Yes!我知道这一点,但我想知道为什么这段代码不起作用。我猜是因为您的方法名为listing
,并且没有被任何人调用。调度呼叫get
或post
,而不是列表
@Yuji'Tomita'Tomita哦!我懂了!。那我该怎么办?调用列表