2014-02-20 2 views
0

В django-tables2 можно ли задать имя_файла для TemplateColumn внутри конструктора таблицы? Я хотел бы иметь возможность выбирать шаблон во время выполнения.django-tables2: Установить шаблон для TemplateColumn во время выполнения

Из документов единственного способа установить шаблон, как это:

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

В моем приложении есть различные шаблоны для одного столбца в зависимости от состояния для приложения, и я хотел бы, чтобы не создавать различный класс таблицы для каждого состояния и вместо этого просто заменяет шаблон во время выполнения.

ответ

1

Вы можете попытаться изменить шаблон во время выполнения таким образом:

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

Предупреждение: Не тестировалось. Пожалуйста, проверьте это и вернитесь. Я удалю ответ, если не запустится.

+0

Это работает, спасибо! – mzu

+0

Ницца. Ответ был написан digging table2 code;) мощный инструмент! – danihp