【问题标题】:In Django-pagination Paginate does not working在 Django 分页中,分页不起作用
【发布时间】:2011-03-04 19:49:29
【问题描述】:

问题:如何强制分页正常工作?问题是{% 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. 在 settings.py 中为 INSTALLED_APP 添加分页:

    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.request” )

  4. 同时添加到 settings.py 中间件:

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

  5. 在views.py中添加到顶部:

    从 django.template 导入 RequestContext

  6. 最后添加到我的 HTML 模板页面行:

    {% 加载 pagination_tags %} ... {% 自动分页 item_list 50 %} {% for item_list 中的项目 %} ... {% endfor %} {% 分页 %}

谢谢。


添加:错误报告顶部:

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 代码样式:)

【问题讨论】:

  • 您确定传入的是 QuerySet 而不是要分页的内容的列表或字典吗?
  • @stevejalim 我在问题的底部添加了日志记录功能...

标签: django pagination django-pagination


【解决方案1】:

您能否提供有关 TemplateSyntaxError 的更多详细信息?

您的所有配置看起来都很好。 在pagination/pagination.html 模板中有{% load i18n %}。你的设置文件中有USE_I18N = True吗?

【讨论】:

  • 是的,USE_I18N = True 出现在 settings.py 中(我认为这是默认设置)。仅{% paginate %} 不工作。如果我从源 html 中删除它,它只会在列表中显示 10 个项目,但没有 previouscurrentnext 按钮出现。我可以添加错误消息,但是它太长了...
【解决方案2】:

之前找到解决办法:django-pagination你需要最新版本的,就是修复bug!

【讨论】:

    猜你喜欢
    • 2011-06-11
    • 1970-01-01
    • 1970-01-01
    • 2021-01-02
    • 2015-06-20
    • 1970-01-01
    • 2014-07-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多