如何删除django-tables 2中的列?

w6mmgewl  于 2023-05-30  发布在  Go
关注(0)|答案(2)|浏览(134)

我在我的视图中示例化我的表。

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

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

问题是当我第一次运行我的代码时,我已经得到了我想要的一切。但是如果我第二次运行我的代码,表模型将保留先前定义的列。
如何删除这些列?

oyjwcjzk

oyjwcjzk1#

如果您和我一样,来自Google,想要从Table中“删除一列”,请考虑使用文档中的exclude。例如:

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

pbgvytdp2#

对表构造函数使用extra_columns参数。
extra_columns(str,Column)- list of(name,column)-包含要添加到示例的额外列的元组。
这将确保在将额外的列添加到表示例之前复制Table.base_columns

相关问题