【问题标题】:Is there an automated way of finding which page, of a paginated list, contains a specific object?是否有自动查找分页列表中哪个页面包含特定对象的方法?
【发布时间】:2012-05-11 22:57:43
【问题描述】:

用户创建一个新对象后,我想将它们重定向回分页的对象列表。重要的是,我想将它们发送到显示新创建对象的列表页面(以便我可以突出显示它)。

有没有一种内置在 Django 或库中的好方法?

MySql paginated results, find "page" for specific result 是相关的,但我正在寻找 Django 应用程序的最佳实践。

【问题讨论】:

    标签: django pagination


    【解决方案1】:

    没有“自动化”方式,因为对象本身并没有与“页面”的概念相关联。此外,查询集的顺序是可变的,因此特定对象的页码也是可变的。但是,您可以很容易地将该答案适应 Django 的 DBAPI,本质上是:

    MyModel.objects.filter(my_order_by_field__lt=my_instance.my_order_by_field).count()
    

    然后,只需将其除以每页的项目:

    page_number = count / items_per_page
    

    由于 Python 的 / 运算符在处理整数时已经落地,因此您无需执行任何其他操作。

    【讨论】:

    • 谢谢,我希望我需要 +1,因为分页从 1 开始。
    猜你喜欢
    • 2011-06-19
    • 2019-07-04
    • 1970-01-01
    • 2021-09-18
    • 2019-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多