如何删除django-tables2中的列?

时间:2018-02-22 16:50:58

标签: python django python-3.x django-tables2

我在视图中实例化了我的表格。

view.py

def my_function():
    ...
    ...
    #init a new table with data and news columns !!!!!
    table = ResistanceTable(data=data,newscolumns=geneList)

    return render(request, 'page.html',  {'table': table})

数据是dict of data和geneList是新闻列的名称列表。

tables.py

class ResistanceTable(tables.Table):

    souche = tables.Column();
    column_default_show = ['souche']

    def __init__(self, data, newscolumns, *args, **kwargs):

        if newscolumns:

            for col in newscolumns:
                self.base_columns[col] = tables.Column(verbose_name=col)

        super(ResistanceTable, self).__init__( data, newscolumns, *args, **kwargs)


    class Meta:
        attrs = {'class': 'table table-bordered table-striped table-condensed'}

问题是当我第一次运行我的代码时,我有我想要的一切。但是如果我第二次运行我的代码,表模型将保留先前定义的列。

如何删除这些列?

1 个答案:

答案 0 :(得分:0)

使用extra_columns argument to the table constructor.

  

$variableName = session('variableName') (str,Column) - 包含的(名称,列)-tuples列表   要添加到实例的额外列。

这将确保在将额外列添加到表实例之前复制extra_columns