Python paginator不在django工作
我跟随官方文档在Django中使用paginator,但它不起作用,它显示正确的页数,但在每一页上,都显示整个列表,而不是将其分为许多页 视图.pyPython paginator不在django工作,python,django,Python,Django,我跟随官方文档在Django中使用paginator,但它不起作用,它显示正确的页数,但在每一页上,都显示整个列表,而不是将其分为许多页 视图.py def home(request): current_user = request.user all_dress = Item.objects.all().filter(dress_active=True).order_by('-created_at') all_good = Item.objects.all().filte
def home(request):
current_user = request.user
all_dress = Item.objects.all().filter(dress_active=True).order_by('-created_at')
all_good = Item.objects.all().filter(dress_special=True)
all_name = Name.objects.all()
all_ads = Ads.objects.all()
#pig
paginator = Paginator(all_dress, 3) # Show 12 dress per page
page = request.GET.get('page')
dresss = paginator.get_page(page)
context = {
'all_dress': all_dress,
'all_name': all_name,
'current_user': current_user,
'all_good':all_good,
'all_ads':all_ads,
'dresss':dresss,
}
return render(request, 'fostan/index.html',context)
HTML
<div class="row">
<div class="col">
</div>
<div class="col">
<div dir="ltr">
<div class="pagination" align="left">
<span class="step-links" align="left">
{% if dresss.has_previous %}
<a href="?page=1">« first </a>
<a href="?page={{ dresss.previous_page_number }}"> previous</a>
{% endif %}
<span class="current">
Page number {{ dresss.number }} of {{ dresss.paginator.num_pages }}
</span>
<br>
{% if dresss.has_next %}
<a href="?page={{ dresss.next_page_number }}">next </a>
<a href="?page={{ dresss.paginator.num_pages }}">last »</a>
{% endif %}
</span>
</div>
</div>
</div>
<div class="col">
</div>
</div>
{%如果dresss.has_previous%}
{%endif%}
页码{{dresss.paginator.num_pages}的{{dresss.number}}
{%如果dresss.has_next%}
{%endif%}
我有9个项目,我要求分页器每页只显示3个项目,结果是3页,每页都有相同的9个项目
项目列表
<ul class="thumbnails" >
{% for dress in all_dress %}
<li class="span4 pull-left" >
<div class="thumbnail">
<a class="zoomTool" href="{% url 'dress_details' dress.pk%}" title="add to cart"><span class="icon-search"></span> عرض التفاصيل</a>
<a href="{% url 'dress_details' dress.pk%}"><img class="main" src="{{ dress.dress_image1.url }}" alt=""></a>
<div class="caption">
<h5> فستان {{ dress.dress_name }} </h5>
<h4>
<a class="defaultBtn" href="{% url 'dress_details' dress.pk%}" title="إضفط لمشاهدة الفستان"><span class="icon-zoom-in"></span></a>
<span class="pull-left">{{ dress.dress_price }} جنيه </span>
</h4>
</div>
</div>
</li>
{% endfor %}
</ul>
{所有服装中的服装%}
-
فست㶌{dress.dress_name}
{{dress.dress_price}}
{%endfor%}
您应该这样做:
paginator = Paginator(all_dress, 3)
page = request.GET.get('page')
try:
dresss = paginator.page(page)
except PageNotAnInteger:
dresss = paginator.page(1)
except EmptyPage:
dresss = paginator.page(paginator.num_pages)
你应该这样做:
paginator = Paginator(all_dress, 3)
page = request.GET.get('page')
try:
dresss = paginator.page(page)
except PageNotAnInteger:
dresss = paginator.page(1)
except EmptyPage:
dresss = paginator.page(paginator.num_pages)
显示项目的模板代码在哪里?但是无论如何:我很确定你正在显示来自
all\u dress
的项目,是吗?哦,是的-完全不相关,但是YourModel.objects.all().filter(…)
是多余的,你应该只使用YourMode.objects.filter(…)
谢谢.filter()的建议,是的,我正在使用al\u dress列出项目。检查代码的更新,这样您就可以使用all\u dress
——这是完整的无冲突查询集——作为项目的源代码,您想知道为什么每页都会显示整个查询集?也许你应该更仔细地阅读文档和示例…显示项目的模板代码在哪里?但是无论如何:我很确定你正在显示来自all\u dress
的项目,是吗?哦,是的-完全不相关,但是YourModel.objects.all().filter(…)
是多余的,你应该只使用YourMode.objects.filter(…)
谢谢.filter()的建议,是的,我正在使用al\u dress列出项目。检查代码的更新,这样您就可以使用all\u dress
——这是完整的无冲突查询集——作为项目的源代码,您想知道为什么每页都会显示整个查询集?也许你应该更仔细地阅读文档和示例。。。