在django-tables2中更改类型列

时间:2018-12-18 10:13:43

标签: django django-tables2

填写表格

mydata.append({
            'bool_access': True,
            'path': path
        })
table = mytable(data=mydata)

----> render 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')

想要

我希望如果在数据中在{True”处添加bool_access的行,则path的列类型为tables.LinkColumn,否则如果bool_access处的“ False”的列类型为tables.Column

在此先感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

有多种方法可以解决此问题,但我认为最简单的方法是使用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')