Я хочу использовать django.core.paginator, и у меня проблема с функцией render_to_response. Переменная с именем страницами в views.py должно возвращать количество страниц и т. Д., Но это не так. Все истории, которые я вижу, но разбиение на страницы не работает. views.py файл выглядит следующим образом:django paginator, количество страниц не возвращается
from django.shortcuts import render_to_response, get_object_or_404
from django.db.models import Q
from cms.models import Story, Category
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
def listing(request):
story_list = Story.objects.all()
p = Paginator(story_list, 2) # Show 2 contacts per page
page = request.GET.get('page')
try:
pages = p.page(page)
except PageNotAnInteger:
# If page is not an integer, deliver first page.
pages = p.page(1)
except EmptyPage:
# If page is out of range (e.g. 9999), deliver last page of results.
pages = p.page(p.num_pages)
return render_to_response('/usr/local/lib/python2.7/dist-packages/django/bin/project_003/cms/templates/cms/story_list.html', {"pages": pages})
И story_list.html как это:
{% extends "/usr/local/lib/python2.7/dist-packages/django/bin/project_003/cms/templates/cms/base.html" %}
{% block content %}
{% if heading %}
<h1>{{ heading }}</h1>
{% endif %}
<ul id="story-list">
{% for story in story_list %}
<li><a href="{{story.get_absolute_url}}">{{story.title}}</a></li><br>
{{pages.p.num_pages}}
{% endfor %}
<div class="pagination">
<span class="step-links">
{% if pages.has_previous %}
<a href="?page={{ pages.previous_page_number }}">previous</a>
{% endif %}
<span class="current">
Page {{ pages.number }} of {{ pages.paginator.num_pages }}.
</span>
{% if pages.has_next %}
<a href="?page={{ pages.next_page_number }}">next</a>
{% endif %}
</span>
</div>
</ul>
{% endblock %}
Где я сделал ошибку?
Это не ваш фактический код , потому что вы не передаете «story_list» в шаблон. Ошибка состоит в том, что вы повторяете «story_list», а не 'pages'. –
Также обратите внимание, что в настройке TEMPLATE_DIRS есть что-то * очень * неправильное, если вы передаете полный путь к файлу из корня в качестве места вашего шаблона в своем представлении. –
Кроме того, вы возвращаете 'pages' как объект' Page' в шаблон. Это означает, что это не объект «Paginator», из которого вы можете получить количество страниц. –