从列表中填充时以编程方式设置表的列

时间:2017-10-04 12:01:47

标签: django django-tables2

我将从列表中填充django-tables2列表,我正在按照教程示例进行操作:

import django_tables2 as tables

data = [
    {'name': 'Bradley'},
    {'name': 'Stevie'},
]

class NameTable(tables.Table):
    name = tables.Column()

table = NameTable(data)

我的问题是我不知道哪些字段是必需的,所以能够在运行时从名称列表中指定它们会很好。 。E.g,:

needed_columns = ["name"]
class NameTable(tables.Table):
    for field in needed_columns:
        ADD_FIELD(field, tables.Column())

这有可能吗?

1 个答案:

答案 0 :(得分:0)

django-tables2' s Table有一个构造函数参数extra_columns

  

extra_columnsstr,列) - (名称,列) - 元组列表   包含要添加到实例的额外列。

您可以使用它在实例化表时动态添加列:

class MyTable(tables.Table):
    name = tables.Column()

table = MyTable(data, extra_columns=[
    ('country', tables.Column())
])

您可以查看how that is implemented以查看如何向表类添加列。