В Django-pagination Paginate не работает

Вопрос: как заставить правильно работать разбиение на страницы? Проблема в том, что {% paginate %} не работает, а другие {% load pagination_tags %} и {% autopaginate object_list 10 %} работают!

Появилось сообщение об ошибке, когда я добавляю {% paginate %} в html-страницу:

TemplateSyntaxError at /logging
Caught an exception while rendering: pagination/pagination.html

Что я сделал:

  1. Установите django-pagination без проблем. Когда я делаю в python import pagination, это работает хорошо.

  2. Добавлена ​​нумерация страниц в INSTALLED_APP в settings.py:

    INSTALLED_APPS = ( # ..., 'разбиение на страницы', )

  3. В settings.py добавлено:

    TEMPLATE_CONTEXT_PROCESSORS = ( "django.core.context_processors.auth", "django.core.context_processors.debug", "django.core.context_processors.i18n", "django.core.context_processors.media", "django.core.context_processors. запрос" )

  4. Также добавьте в промежуточное ПО settings.py:

    MIDDLEWARE_CLASSES = ( # ... 'pagination.middleware.PaginationMiddleware', )

  5. Добавить в топ в views.py:

    из django.template импортировать RequestContext

  6. И, наконец, добавьте на мою страницу шаблона HTML строки:

    {% load pagination_tags %} ... {% autopaginate item_list 50 %} {% для элемента в item_list %} ... {% endfor %} {% paginate %}

Спасибо.


ДОБАВЛЕНО: начало отчета об ошибке:

TemplateSyntaxError at /logging
Caught an exception while rendering: pagination/pagination.htmlRequest Method:  GET
Request URL:    http://host:8123/logging?portfolio_id=1
Exception Type: TemplateSyntaxError
Exception Value:    Caught an exception while rendering: pagination/pagination.html
Exception Location: /usr/local/lib/python2.6/dist-packages/django/template/debug.py in render_node, line 81
Python Executable:  /usr/bin/python
Python Version: 2.6.2
Python Path:    ['/home/mosg/sources/django/apm', '/usr/local/lib/python2.6/dist-packages/django_pagination-1.0.5-py2.6.egg', '/usr/lib/python2.6', '/usr/lib/python2.6/plat-linux2', '/usr/lib/python2.6/lib-tk', '/usr/lib/python2.6/lib-old', '/usr/lib/python2.6/lib-dynload', '/usr/lib/python2.6/dist-packages', '/var/lib/python-support/python2.6', '/var/lib/python-support/python2.6/gtk-2.0', '/usr/local/lib/python2.6/dist-packages', '/usr/lib/python2.6/dist-packages']
Server time:    Thu, 17 Jun 2010 06:29:45 -0500

Template error

In template /home/mosg/sources/django/apm/templates/accounting/logging.html, error at line 93
Caught an exception while rendering: pagination/pagination.html
83      <td>{{ item.transaction_datetime }}</td>
84      <td>{{ item.src_account }}</td>
85      <td>{{ item.dst_account }}</td>
86      <td>{{ item.body }}</td>
87      <td>{{ item.estimated }}</td>
88  <!--
89      <td><a href="./admin/accounting/transaction/{{item.id}}/">edit</a></td>
90  -->
91  </tr>
92  {% endfor %}
93  {% paginate %}
94  </table>
95  {% else %}
96      <p>No transaction logs are available.</p>
97  {% endif %}
98          </div>
99      
100 
101 </div>
102        
103         <br class="clear" />

ДОБАВЛЕНО для stevejalim:

@login_required
def logging(request):
    pid = request.GET.get('portfolio_id', 1)
    item_list = TransactionsLogging.objects.filter(Q(portfolio_id=pid)).order_by('-datetime')
    return render_to_response('accounting/logging.html', {'item_list': item_list, 'user': request.user,}, context_instance = RequestContext(request))

PS: требуются некоторые правки, потому что я не могу здесь хорошо работать в стиле кода django :)


person mosg    schedule 17.06.2010    source источник
comment
Вы определенно передаете QuerySet, а не список или словарь вещей, которые хотите разбить на страницы?   -  person Steve Jalim    schedule 17.06.2010
comment
@stevejalim Я добавляю функцию ведения журнала в конец своего вопроса ...   -  person mosg    schedule 17.06.2010


Ответы (2)


Можете ли вы предоставить более подробную информацию об TemplateSyntaxError?

Все ваши конфигурации выглядят нормально. В шаблоне pagination/pagination.html есть {% load i18n %}. У вас есть USE_I18N = True в вашем файле настроек?

person dzida    schedule 17.06.2010
comment
Да, USE_I18N = True присутствует в settings.py (я думаю, по умолчанию). Не работает только {% paginate %}. Если я удалю его из исходного html, он покажет только 10 элементов в списке, но не будет кнопок предыдущий, текущий и следующий. Я могу добавить сообщение об ошибке, но оно слишком длинное... - person mosg; 17.06.2010

Решение было найдено ранее: django-pagination нужно с последней версия, в которой исправлена ​​ошибка!

person mosg    schedule 28.09.2010