使用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}
)使用样式表做什么。
不幸的是,我的(noob)理解是在Django中,视图与屏幕大小等低级参数相对隔离。但是,我不想实现一些方案,比如将模板中的信息发送到视图中,如果已经有一个简单的解决方案被烘焙到django-tables2中,我只是不知道。
注意我正在使用Bootstrap4作为我的前端,如果这有任何区别。关键是我已经将Javascript和jQuery导入到项目中,至少在模板级别。
相关的一般性讨论
有趣的是,我还没有看到很多关于将表行数调整为媒体类型的讨论,但显然有很多关于响应式媒体敏感设计的一般性讨论:
答案 0 :(得分:1)
我没有直截了当或完整的解决方案,但我会分享一些想法:
当(最初)渲染表时,Django-tables2无法知道屏幕大小。其中一种解决方法可能满足您的需求:
渲染更少的行
在初始页面视图中,如果您的屏幕尺寸较小:
per_page
添加到网址。针对响应性优化模板
针对不同的屏幕尺寸优化模板,而不是更改行数。有关如何工作的示例可以在webpack documentation中显示的表格中找到。但是,使用这种技术,您可能仍希望在较小的屏幕上使用较少的行。
客户端表格排序
如果总行数合理,将所有内容发送到客户端并将分页推迟到datatables之类的内容可能会有效。