gpt4 book ai didi

django - 在 django-tables2 中,显示的行数取决于屏幕大小?

转载 作者:行者123 更新时间:2023-12-04 21:32:06 24 4
gpt4 key购买 nike

使用 django-tables2 时,请使用 paginate参数来限制显示的行数。例如,如果我有表 my_table ,然后在 views.py我将其设置为显示 10 行,如下所示:

RequestConfig(request, paginate={'per_page':10}).configure(my_table)

我的问题是,在我的应用程序中,我希望每页显示的行数取决于用户屏幕的大小。例如,移动设备为 10 行,而桌面屏幕为 25 行。我想在 views.py 做您可以使用媒体规则(例如 @media(max-height: 480px) {do something} )对样式表执行哪些操作。

不幸的是,我(菜鸟)的理解是,在 Django 中, View 与屏幕尺寸等低级参数相对隔离。但是,如果 django-tables2 中已经有一个我不知道的简单解决方案,我不想实现一些方案,比如将信息从模板发送到 View 。

请注意,我在前端使用 Bootstrap4,如果这有什么不同的话。关键是我已经将 Javascript 和 jQuery 导入到项目中,至少在模板级别。

相关综合讨论
有趣的是,我还没有看到很多关于将表格行数调整为媒体类型的讨论,但显然有很多关于响应式媒体敏感设计的更一般的讨论:
  • Responsive design with media query : screen size?
  • https://developer.mozilla.org/en-US/docs/Web/CSS/@media
  • 最佳答案

    我没有直接或完整的解决方案,但我会分享一些想法:

    当(最初)渲染表格时,Django-tables2 无法知道屏幕大小。这些解决方法之一可能会满足您的需求:

    减少行数

    在您的初始页面 View 中,如果您的屏幕尺寸很小:

  • 隐藏一些行,然后使用 JavaScript 调整您为下一页请求的偏移量和页数。这将涉及重写分页链接的 url 参数。
  • 重新加载带有 per_page 的较小数字的页面添加到网址。
  • 默认呈现较少的行数,并允许用户使用下拉菜单更改呈现的行数,该下拉菜单对移动用户隐藏。

  • 优化模板以提高响应能力

    针对不同的屏幕尺寸优化模板而不是改变行数。可以在 webpack documentation 中显示的表格中找到如何工作的示例。 .不过,使用这种技术,您可能仍然希望在较小的屏幕上使用更少的行。

    客户端表格排序

    如果总行数合理,则将所有内容发送给客户端并将分页推迟到 datatables 之类的内容。可能会奏效。

    关于django - 在 django-tables2 中,显示的行数取决于屏幕大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48752791/

    24 4 0