更改 django-tables2 中的类型列
Change type column in django-tables2
填写table
mydata.append({
'bool_access': True,
'path': path
})
table = mytable(data=mydata)
----> render table
Table
class mytable(tables.Table):
path = tables.Column(verbose_name='My path')
# path = tables.LinkColumn('page_web', args=[A('path')],verbose_name='My path')
bool_access = ""
class Meta:
attrs = {'class': 'table table-bordered table-striped table-condensed'}
sequence = ('path')
求购
我想如果在我的数据中添加一行 bool_access
在 "True" 则 path
的列类型是 tables.LinkColumn
否则如果 bool_access
在 "False" 列类型是 tables.Column
.
在此先感谢您的帮助。
有多种方法可以解决这个问题,但我认为最直接的方法是使用 TemplateColumn
:
class MyTable(tables.Table):
path = tables.TemplateColumn(
verbose_name='My path',
template_code="""{% if record.bool_access %}<a href="{% url "page_web" record.path %}">{{ record.path }}</a>{% else %}{{ record.path }}{% endif %}""")
class Meta:
attrs = {'class': 'table table-bordered table-striped table-condensed'}
sequence = ('path')
填写table
mydata.append({
'bool_access': True,
'path': path
})
table = mytable(data=mydata)
----> render table
Table
class mytable(tables.Table):
path = tables.Column(verbose_name='My path')
# path = tables.LinkColumn('page_web', args=[A('path')],verbose_name='My path')
bool_access = ""
class Meta:
attrs = {'class': 'table table-bordered table-striped table-condensed'}
sequence = ('path')
求购
我想如果在我的数据中添加一行 bool_access
在 "True" 则 path
的列类型是 tables.LinkColumn
否则如果 bool_access
在 "False" 列类型是 tables.Column
.
在此先感谢您的帮助。
有多种方法可以解决这个问题,但我认为最直接的方法是使用 TemplateColumn
:
class MyTable(tables.Table):
path = tables.TemplateColumn(
verbose_name='My path',
template_code="""{% if record.bool_access %}<a href="{% url "page_web" record.path %}">{{ record.path }}</a>{% else %}{{ record.path }}{% endif %}""")
class Meta:
attrs = {'class': 'table table-bordered table-striped table-condensed'}
sequence = ('path')