hob*_*es3 5 python django django-pagination
如果它不能那么有任何其他替代品(Django的原生分页或替代包)允许每页多个分页?
我想显示一个大约5个对象的列表,每个对象都有自己的分页上下文.
为方便起见,这里是django-pagination的文档.
我知道这篇文章很老,但它仍然有用.以下内容适用于Django 1.9.
这是怎么做的,
views.py
def myview():
Model_one = Model.objects.all()
paginator = Paginator(Model_one, 6)
page = request.GET.get('page1')
try:
Model_one = paginator.page(page)
except PageNotAnInteger:
Model_one = paginator.page(1)
except EmptyPage:
Model_one = paginator.page(paginator.num_pages)
Model_two = Model_other.objects.all()
paginator = Paginator(Model_two, 6)
page = request.GET.get('page2')
try:
Model_two = paginator.page(page)
except PageNotAnInteger:
Model_two = paginator.page(1)
except EmptyPage:
Model_two = paginator.page(paginator.num_pages)
context = {'Model_one': Model_one, 'Model_two': Model_two}
return render(request, 'template.html', context)
Run Code Online (Sandbox Code Playgroud)
上面重要的是'page1'和'page2'.
在模板中,
{% if model_one %}
<div class="col-md-12 well">
{% for item in model_one %}
..... iterates through model_one.....
{% endfor %}
<span class="step-links pagination">
{% if model_one.has_previous %}
<a href="?page1={{ model_one.previous_page_number }}"> previous </a>
{% endif %}
<span class="current">
Page {{ model_one.number }} of {{ model_one.paginator.num_pages }}
</span>
{% if model_one.has_next %}
<a href="?page1={{ model_one.next_page_number }}"> next </a>
{% endif %}
</span>
</div>
{% endif %}
{% if model_two %}
<div class="col-md-12 well">
{% for item in model_two %}
..... iterates through model_two.....
{% endfor %}
<span class="step-links pagination">
{% if model_two.has_previous %}
<a href="?page2={{ model_two.previous_page_number }}"> previous </a>
{% endif %}
<span class="current">
Page {{ model_two.number }} of {{ model_two.paginator.num_pages }}
</span>
{% if model_two.has_next %}
<a href="?page2={{ model_two.next_page_number }}"> next </a>
{% endif %}
</span>
</div>
{% endif %}
Run Code Online (Sandbox Code Playgroud)
再次使用'page1'和'page2'来区分每个模型的分页.
当然,这是可能的.我不能说django-pagination包,但绝对可以使用默认的Django Paginator类.您可以在视图中创建任意数量的内容.只需选择不同的GET参数来指定每个参数的页面,你就可以了.
| 归档时间: |
|
| 查看次数: |
2495 次 |
| 最近记录: |