Django分页显示从第二页开始的所有对象
我以标准方式进行分页,但从页面的第二页开始,所有对象都可见。所有后续页面都包含相同的数据。 如果我从任何其他页面返回到第一页,那么我可以看到它上的所有现有对象 视图.pyDjango分页显示从第二页开始的所有对象,django,Django,我以标准方式进行分页,但从页面的第二页开始,所有对象都可见。所有后续页面都包含相同的数据。 如果我从任何其他页面返回到第一页,那么我可以看到它上的所有现有对象 视图.py def viewtrainers(request, slug): trainers_list = Profile.objects.filter(city__slug = slug) page = request.GET.get('page') paginator = Paginator(trainers
def viewtrainers(request, slug):
trainers_list = Profile.objects.filter(city__slug = slug)
page = request.GET.get('page')
paginator = Paginator(trainers_list, 10)
try:
trainers = paginator.page(page)
except PageNotAnInteger:
trainers = paginator.page(1)
except EmptyPage:
trainers = paginator.page(paginator.num_pages)
return render(request, "trainers.html", {'trainers':trainers})
template.html
{% if trainers.has_other_pages %}
<ul class="pagination justify-content-center" style="margin:20px 0">
{% if trainers.has_previous %}
<li class="page-item"><a class="page-link" href="?page={{ trainers.previous_page_number }}">«</a></li>
{% else %}
<li class="page-item disabled"><span class="page-link" >«</span></li>
{% endif %}
{% for i in trainers.paginator.page_range %}
{% if trainers.number == i %}
<li class="page-item active"><span class="page-link">{{ i }} <span class="sr-only">(current)</span></span></li>
{% else %}
<li><a class="page-link" href="?page={{ i }}">{{ i }}</a></li>
{% endif %}
{% endfor %}
{% if trainers.has_next %}
<li class="page-item"><a class="page-link" href="?page={{ trainers.next_page_number }}">»</a></li>
{% else %}
<li class="page-item disabled"><span class="page-link" >»</span></li>
{% endif %}
</ul>
{% endif %}
{%if trainers.has_other_pages%}
{%if.has_previous%}
{%else%}
- «李>
{%endif%}
{trainers.paginator.page_range%}
{%if.number==i%}
- {{i}(当前)
{%else%}
{%endif%}
{%endfor%}
{%if.has_next%}
{%else%}
- »李>
{%endif%}
{%endif%}
当您按某个参数对数据进行排序时,分页会起作用。这就是分页真正有意义的时候,否则,Django不知道返回什么数据,它将围绕请求进行复制
因此,在第一行中,您需要执行以下操作:
trainers\u list=Profile.objects.filter(city\uu slug=slug)。order\u by('x')
此处
x
是Profile
对象的一个属性,您可以根据该属性对数据进行实际排序。添加排序无效排序中使用的参数是什么?它在所有配置文件对象中都是唯一的吗?我尝试使用diffirent字段include unique。Django文档没有任何关于分页排序的说明。当您订购某样东西时,那么只能保证queryset在每个页面上为您提供唯一的结果。您能告诉我您添加排序的确切字段是什么吗?slug-每个对象的唯一性和价格-不是唯一的