html - 在 django tables2 中设置动态表的最佳方法(例如 Meta 类)
问题描述
前言:我想我可能遗漏了一个更基本的细节,但这里有......
我正在生成一个具有动态列数的表(https://django-tables2.readthedocs.io/en/latest/),当我们最终得到一个包含许多列的表时,这会导致列宽需求问题。我的用户希望某些列比其他列更宽,而不会丢失其他列中的任何文本以溢出。可以将表格吹过 100% 宽度(例如 1500 像素)。
我不能使用style='table-width:auto'
,因为这不尊重我设置的特定列宽。我可以使用'table-width:fixed;width:$WIDTH'
,但我现在没有足够快的宽度在 Meta 类中定义它(或者我可以吗?)。
我觉得我可能需要做的是这样的事情?我意识到 Meta 不应该以这种方式工作。
class ExampleTable(tables.Table):
def __init__(self, *args, **kwargs):
self.total_name_columns = self.get_total_name_columns()
self.table_width = 500 + (120 * self.total_name_columns)
super(ExampleTable, self).__init__(*args, **kwargs)
class Meta:
# How would the value be dynamic like this?
attrs = {'class': 'paleblue', 'style':'table-layout:fixed;width:%spx;' % (self.table_width) }
我认为另一种选择可能是将该self.table_width
值发送到模板的某个位置,并在我们加载页面后使用 JS 来调整表格的大小,但我想我会先询问其他人是否有其他解决方案的经验。谢谢!
解决方案
发布问题后,我立即找到了一个选项。如果您将列数据包装在 a 中<div style="width:200px">Column Text</div>
,table-layout:auto
将尊重这一点。所以你可以让浏览器自动调整所有列的大小,除了那些用 div 包裹数据的列。不是我上面要求的,但确实有效。
推荐阅读
- c# - ASP.Net MVC5 中 DropDownlist 的难点
- r - R 管道工发布 PDF
- python - 使用 Python 管理 AWS
- python - 将生成的组合中的项目从一个列表重新定义为另一个列表的术语,其项目在位置上是链接的
- kendo-ui-angular2 - 在 Kendo Angular Grid 上设置滚动位置
- javascript - 使用 JavaScript 添加/删除表行
- html - 垂直线性渐变
- sql - oracle错误信息输入值不够长
- python - 没有任何包的 Python 规范化
- swift - 使用 UIScrollView 滚动 TableView 和 Main Stack