当使用django-tables2 2时,使用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 2中已经有一个我不知道的简单解决方案,我不想实现一些方案,比如将信息从模板发送到视图。
注意,如果这样做有任何不同,我将使用Bootstrap4作为我的前端。关键是我已经将Javascript和jQuery导入到项目中,至少在模板级别上是这样。
相关一般性讨论
有趣的是,我还没有看到很多关于将表行计数调整为媒体类型的讨论,但显然有大量关于响应媒体敏感设计的一般性讨论:
发布于 2018-02-14 20:55:15
我没有直截了当或完整的解决方案,但我将分享一些想法:
当(最初)呈现表时,Django- table 2无法知道屏幕大小。以下解决办法之一可能满足您的需要:
呈现较少行
在初始页面视图中,如果屏幕大小较小:
per_page的较小数目重新加载页面。优化模板用于响应性
优化不同屏幕大小的模板,而不是更改行数。在webpack文献中显示的表中可以找到如何工作的示例。不过,使用这种技术,您可能仍然希望更少的小屏幕行。
客户端表排序
如果行总数是合理的,那么将所有内容发送到客户端并将分页推迟到类似可数据之类的内容可能会有效。
https://stackoverflow.com/questions/48752791
复制相似问题