У меня есть куча шаблонов ( t ) Я выполняю рендеринг для нескольких случаев ( c ), поэтому, в общем, t × c шаблоны генерируются.
for template in templates:
for case in cases:
rendered = template.render(case.data)
save(case.filename, rendered)
Теперь у нас есть новое требование, где некоторые комбинации не имеют значения, например, 3 из них. Я не хочу, чтобы файлы отображались в тех редких случаях. (т × с - 3)
Я мог бы написать некоторый код потока управления (вложенный в циклы for), но тогда этот код должен был бы быть более тесно связан с шаблоном, чем я хочу, поэтому я пытаюсь найти лучший способ сделать это.
Мне кажется, что в шаблоне jinja нужно что-то сказать: «извините, этот шаблон не удался», и тогда исключение может быть обработано во время генерации. (также внутри циклов for, но там меньше решений) Я придумал это, и это отчасти работает, но мне это не нравится:
{{ foo if foo is defined else 1 / 0 }}
Это вызывает исключение, но это не полезное исключение. Есть ли более чистый способ создания исключения в дзиндзя?
Вместо исключения, есть ли способ сообщить, что шаблон не должен генерироваться в jinja?
(Должен ли я просто избегать такого рода вещей и просто помещать логику в код генерации)