如何对基于Django类的泛型ListView使用分页?

如何在Django 1.3中使用分页

文件对此不是很清楚

  • 我的视图.py中有什么内容

  • 我的模板中有什么

  • 我的URLconf文件中有什么内容

我想您会询问有关在新的基于类的视图中使用分页的信息,因为在传统的基于函数的视图中,很容易找到分页。我发现只要设置paginate_by变量就足以激活分页。请参见基于类的常规视图中的

例如,在视图.py中:

导入模型
从django.views.generic导入ListView
类别CARISTVIEW(列表视图):
model=models.Car#设置queryset=models.Car.objects.all()的简写
template_name='app/car_list.html'#可选(默认值为app_name/modelNameInLowerCase_list.html;它将在模板文件夹中查找该路径和文件)
context_object_name=“car_list”#默认值为对象列表以及模型的详细名称列表和/或模型的详细名称列表(如果在模型的内部元类中定义)
按=10分页,就这样!!

在您的模板(car_list.html)中,您可以包括这样的分页部分(我们有一些上下文变量可用:已分页页面对象,以及分页器

{#....**普通内容列表,可能是一个表**..}
{%if car_list%}
<表id=“cars”>
{car in car_list%}
<tr>
<td>{{car.model}}&lt/td>
<td>{{car.year}&lt/td>
<td&gt&书信电报;a href=”https://stackoverflow.com/car/{{car.id}/“class=”请参阅详细信息“>细节&lt/a&gt&lt/td>
&lt/tr>
{%endfor%}
&lt/表>
{#....**现在是分页部分**..}
{%if已分页%}
<div class=“分页”>
<span class=“页面链接”>
{%如果页面_obj.has_previous%}
<a href=”https://stackoverflow.com/cars?page={{page_obj.previous_page_number}}”>以前的&lt/a>
{%endif%}
<span class=“当前页面”>
第{{Page_obj.paginator.num_pages}页中的第{{Page_obj.number}页。
&lt/span>
{%如果页面_obj.has_next%}
<a href=”https://stackoverflow.com/cars?page={{page_obj.next_page_number}}”>下一步&lt/a>
{%endif%}
&lt/span>
&lt/部门>
{%endif%}
{%else%}
<h3>我的车&lt/h3>
<p>找不到车!!!:(</p>
{%endif%}
{#....**更多内容、页脚等。**...}

要显示的页面由GET参数指示,只需将?page=n添加到URL即可

发表评论