如何在django-tables中删除列2



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

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})

使用数据数据的数据和基因主义者的新闻列的名称列表。

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'}

问题是,当我第一次运行代码时,我就需要全部。但是,如果我第二次运行代码,则表模型将保留前面定义的列。

如何删除这些列?

如果您像我一样,来自Google想要删除专栏。从表格中,考虑使用记录的exclude。例如:

  table1  = ResistanceTable(data, exclude="coumn_name_to_exclude")

使用 extra_columns参数到表构造函数。

extra_columns(str,列( - (名称,列(列表 - 包含 添加到实例的额外列。

这将确保在将额外的列添加到表实例之前,请确保副本由Table.base_columns制成。