【问题标题】:Django keeps calling another package to paginate -- how?Django 不断调用另一个包进行分页——如何?
【发布时间】:2015-03-09 17:52:59
【问题描述】:

我的代码从django.core.paginator 导入Paginator。 (Django 1.6.7)

但是,在运行时,它以某种方式调用了自定义分页器。我不希望它这样做,因为自定义分页器模板已在升级中删除。我只想使用 Django 的 Paginator,但我找不到如何锻炼用我们损坏的 Paginator 覆盖的地方。

这可能不是一个 Django 问题,而是一个通用的 Python 问题。所有常见的事情,比如 grepping 代码、插入 ipdb's、明智地使用 find 等都没有帮助。

【问题讨论】:

  • 你的 settings.py 文件是什么?有哪些已安装的应用程序?
  • “调用”自定义分页器是什么意思?你是怎么确定的?什么症状?
  • 查看 /usr/lib/python_version/lib/django 或 /usr/local/lib/python_version/lib/django/... 中 django 文件夹下的 python 库路径使用linux机器进行开发?我曾经遇到过这个问题并删除了一个自定义分页器

标签: python django pagination


【解决方案1】:

您可以确保在导入时不要用 Paginator 的名称覆盖它

from django.core.paginator import Paginator as DjangoPaginator

这将确保 DjangoPaginator 来自 django 本身,并且不会被另一个具有相同名称的类覆盖。

那么你可以像下面这样使用它

objects = ['john', 'paul', 'george', 'ringo']
p = DjangoPaginator(objects, 2)

如果这适用于您,那么您的代码中必须有一个名称为 Paginator 的类在 django 类之后导入。此外,一个新的虚拟环境对于确定核心 django 包是否被修改很有用。

【讨论】:

    【解决方案2】:

    你们真的很有帮助。然而,我的困惑来自paginator 被添加到上下文中,但模板顶部有一个声明{% load paginator %}。我以为他们是一样的,但不是。上下文中的paginator 未被使用,load 语句拉入了错误的分页器,该分页器已在模板引擎中注册。

    修复很明显:删除 load 语句,包括上下文分页符并使用那个。

    【讨论】:

      猜你喜欢
      • 2021-04-25
      • 2018-09-11
      • 1970-01-01
      • 2011-11-16
      • 1970-01-01
      • 2020-09-29
      • 2018-12-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多