Динамические столбцы, использующие Мако для табличных данных - PullRequest
0 голосов
/ 20 мая 2011

Документация mako, похоже, намекает на возможность иметь динамическую, необязательную разметку непосредственно перед «Использование блоков», но у меня возникают трудности с ее обработкой .cle

people = dict_cursor.fetchall()
all_possible_cols = ('Name','Birth','Gender', 'Address','City','State', ...]
user_cols = user_wants(user_id) # ('State','Gender','Name')

template.render(**locals())

Как мне динамически вызыватьопределения в шаблоне для визуализации столбцов?

mako template

% for person in people:
<tr>
  % for col in user_cols:
    How do I dynamically call the def/block?
  % endfor
</tr>
% endfor

<%def name="Name()">    ... </%def>
<%def name="Birth()">   ... </%def>
<%def name="Gender()">  ... </%def>
<%def name="Address()"> ... </%def>
<%def name="City()">    ... </%def>
<%def name="State()">   ... </%def>

Таким образом, один пользователь может захотеть («Имя», «Рождение», «Пол»), другой («Пол»',' State ',' Birth '), а третьи могут хотеть их всех в другом порядке.Как я могу чисто поддержать эту функцию в шаблонах мако?

1 Ответ

0 голосов
/ 20 мая 2011

Если я понимаю ваш вопрос, что-то вроде этого должно работать:

<tr>
  % for col in user_cols:
    ${getattr(self, col)()}
  % endfor
</tr>
...