django-tables2:在运行时设置TemplateColumn的模板

时间:2014-02-20 10:33:47

标签: django django-tables2

django-tables2中是否可以在Table的构造函数中为TemplateColumn设置template_name?我希望能够在运行时选择模板。

从文档中设置模板的唯一方法是这样的:

class ExampleTable(tables.Table):
    foo = tables.TemplateColumn('{{ record.bar }}')
    # contents of `myapp/bar_column.html` is `{{ value }}`
    bar = tables.TemplateColumn(template_name='myapp/name2_column.html')

在我的应用程序中,根据应用程序的状态,一列有不同的模板,我希望避免为每个状态创建不同的Table类,而只是在运行时交换模板。

1 个答案:

答案 0 :(得分:1)

您可以尝试以这种方式在运行时更改模板:

e  = ExampleTable( your_query )
e.columns['bar'].column.template_name = 'your_template'

免责声明:未经测试。请测试一下然后回来。如果不跑,我会删除答案。