前言:我想我可能会遗漏一些更基本的细节,但是这里...
我正在生成一个具有动态列计数的表(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来调整表的大小,但是我想问一问其他人是否有其他解决方案的经验第一。谢谢!
答案 0 :(得分:0)
发布问题后,我立即找到了一个选择。如果将列数据包装在<div style="width:200px">Column Text</div>
中,则table-layout:auto
将遵守此规定。因此,您可以使浏览器自动调整所有列的大小,但带有div的列会包装数据。完全不符合我的要求,但确实可以。