我不知道如何在一个for循环中更改多个列的属性。在
我想将orderable=False
设置为多个列。唯一有效的方法是显式地定义所有这些列,这样我就可以将orderable=False
添加到构造函数中。在
class PizzaTable(tables.Table):
class Meta:
template_name = 'django_tables2/bootstrap-responsive.html'
model = Pizza
fields = ['created', 'ham', 'olives', 'corn', 'price',]
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
unorderable_columns = ['ham', 'olives', 'corn',]
for column in unorderable_columns:
self.columns[column].orderable = False
这引发了:
can't set attribute
它必须能够以某种方式做到这一点,否则我必须指定所有这些列:
^{pr2}$你有什么想法吗?在
self.columns
包含BoundColumn
的实例。它们有一些额外的知识(例如,它们在其中使用的表中自己的属性名),并通过self.column
引用实际定义的Column
实例。它们还通过一个无setter属性公开该列的orderable
属性,因此会出现错误。要动态更改该属性,必须在基础列上设置属性:相关问题 更多 >
编程相关推荐