【问题标题】:How disable django admin pagination?如何禁用 django 管理员分页?
【发布时间】:2015-04-20 04:15:57
【问题描述】:

我需要关闭 django 管理分页。我在 django 中使用 mttp,我需要在某些管理模块上禁用分页。

我该怎么做?
或者我如何才能只通过父母进行分页?

【问题讨论】:

    标签: python django python-2.7 django-pagination


    【解决方案1】:

    每页的项目数由ModelAdmin.list_per_page决定。

    正如@codingjoe's comment 建议的那样,将其设置为sys.maxsize 很可能就足够了。

    import sys
    
    class PartAdmin(admin.ModelAdmin):
        list_per_page = sys.maxsize
    

    @SpiRail's answer 不远了,但是在模块导入时进行数据库查询是不对的。此外,list_max_show_all 将不是必需的,因为当所有项目都已显示时,将没有“显示全部”链接。

    【讨论】:

      【解决方案2】:

      如果您使用的是 Django 1.8(最新版本),ModelAdmin 类上有一个名为 show_full_result_count 的新设置,我相信它会满足您的需求。您可以将其设置为 false,它将禁用 Django 管理视图上的分页。

      参考:https://docs.djangoproject.com/en/1.8/ref/contrib/admin/#django.contrib.admin.ModelAdmin.show_full_result_count

      【讨论】:

      • 不,我使用的是 Django 1.7
      • 有一些针对非 1.8 的 hacky 解决方案——您可以在此处查看有关该问题的讨论:code.djangoproject.com/ticket/4065
      • 这不会禁用分页。它只会删除表中条目总数的指示,这需要额外的查询并且会减慢整个页面的速度。
      • show_full_result_count 并没有像 Weier 提到的那样禁用分页
      【解决方案3】:

      我这样做是为了将所有内容放在一个页面上:

      class PartAdmin(admin.ModelAdmin):
          list_per_page = Part.objects.all().count()
          list_max_show_all = list_per_page
      

      它只计算所有部分(我的模型称为“部分”),然后将其设为每页的最大数量。

      【讨论】:

      • 这将在应用加载期间进行查询。你也可以只使用sys.maxsize
      猜你喜欢
      • 1970-01-01
      • 2022-08-18
      • 2017-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多