我在 Django 项目中使用 django-tables2,我想根据数据库查询动态更改某些列的标题,这是在 view.py 中完成的。
我知道在tables.py中可以更改每一列的“verbose_name”属性,但我想分配一个模板变量“{{ headerxy }}”,以便它动态变化。
或者有没有办法更改 view.py 中的“verbose_name”属性?
类似于:
table.columns['column1'].header = some_data
谢谢
最佳答案
这里您要做的就是在初始化 Table 类时将列名作为参数传递,并在该类的 __init__ 范围内使用它。例如:
表类:
class SomeTable(tables.Table):
def __init__(self, *args, c1_name="",**kwargs): #will get the c1_name from where the the class will be called.
super().__init__(*args, **kwargs)
self.base_columns['column1'].verbose_name = c1_name
class Meta:
model = SomeModel
fields = ('column1')
查看:
class SomeView(View):
def get(self, request):
context = {
'table': SomeTable(SomeModel.objects.all(), c1_name='some name')
}
return render(request, 'table.html', {'context':context})
关于python - 如何更改 view.py 中 django-tables2 表的列标题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28088655/