Фильтрация элементов из списка с помощью Template Toolkit - PullRequest
3 голосов
/ 11 августа 2011

Как я могу отфильтровать некоторые элементы в динамически генерируемом списке в Template Toolkit?У меня есть список идентификаторов (также динамически генерируемых) и список идентификаторов, которые должны быть исключены, и мне нужно получить только идентификаторы, которые не исключены.Какой лучший способ сделать это ??Пример кода:

[% SET ids = [1,2,4,10,11,12,13,17,19,20,21,50,51] %]
[% SET id_excluded = [10,11,13,20,50] %]
[% FOREACH pid IN ids %]
    [% IF ?code to filter the ids? %]
        [% pid %]
    [% END %]
[% END %]

1 Ответ

4 голосов
/ 12 августа 2011

Попробуйте grep VMethod для списков, например:

[% SET ids = [1,2,4,10,11,12,13,17,19,20,21,50,51] %]
[% SET id_excluded = [10,11,13,20,50] %]
[% FOREACH pid IN ids %]
    [% UNLESS id_excluded.grep("^$pid\$").size %]
        [% pid %]
    [% END %]
[% END %]

Который производит следующее:

1 2 4 12 17 19 21 51
...