【发布时间】:2021-01-06 23:05:27
【问题描述】:
我正在尝试在此视图中创建分页页面
def all_users(request):
users = Person.objects.all()
pag = Paginator(users, 3)
page_num = request.GET.get('page')
page_obj = pag.get_page(page_num)
context = {
'users': users,
'title': 'All Users',
'page_obj': page_obj
}
return render(request, 'index/users.html', context)
这里是 users.html:
{%extends 'index/base.html'%}
{%block content%}
<section class="all-users">
{%for user in users%}
<article>
<h1 class="username">{{user.username}}</h1>
<hr>
<p><b>Email: </b><span class="email" class="">{{user.email}}</span></p>
<p><b>FirstName: </b><span class="first-name" class="">{{user.first_name}}</span></p>
<p><b>LastName: </b><span class="last-name" class="">{{user.last_name}}</span></p>
<p><b>Joined on: </b>{{user.date_joined}}</p>
{%if is_staff%}
<p>{{user.username} is a staff member</p>
{%else%}
<p><span class="full-name">{{user.first_name}} {{user.last_name}}</span>, a.k.a {{user.username}} is a normal member</p>
{%endif%}
</article>
{%endfor%}
</section>
<div class="pagination">
<span class="step-links">
{% if page_obj.has_previous %}
<a href="?page=1">« first</a>
<a href="?page={{ page_obj.previous_page_number }}">previous</a>
{% endif %}
<span class="current">
Page {{ page_obj.number }} of {{ page_obj.paginator.num_pages }}.
</span>
{% if page_obj.has_next %}
<a href="?page={{ page_obj.next_page_number }}">next</a>
<a href="?page={{ page_obj.paginator.num_pages }}">last »</a>
{% endif %}
</span>
</div>
<script type="text/javascript">
let users = '{{users}}'
for(let username of document.getElementsByClassName('username')){
if (username.textContent.length >= 15 && username.textContent.length <= 20 ){
username.style.fontSize = '30px'
}else if (username.textContent.length >= 11 && username.textContent.length <= 14 ){
username.style.fontSize = '45px'
}
}
</script>
{%endblock content%}
正如您在分页器中看到的,我希望每页三个用户 但这甚至行不通 我仍然在一页上看到所有用户(带有用户信息的文章框)! 任何地方都没有错误消息
【问题讨论】:
-
你应该遍历分页器中的对象。
标签: python html django django-views pagination