在循环中,我想根据文件在指定路径上是否存在的条件,有条件地导入或包含片段。
导入
使用import
的此解决方案将为那些服务抛出异常(TemplateNotFound),该服务在指定路径上没有相应的文件:
{% for service in services %}
{% import "common-topology/master/"+ service + ".json.j2" as fragment %}
{{ "," if fragment and not loop.last }}
{% endfor %}
如果ignore missing
以与import
相同的方式与include
一起工作,那就太好了。
包含
此解决方案将为那些没有相应文件的服务提供额外的逗号:
{% for service in services %}
{% include "common-topology/master/"+ service + ".json.j2" ignore missing %}
{{ "," if not loop.last }}
{% endfor %}
如果我能够检查if
语句中是否存在路径,那么这将是include
的可行解决方案。
解决这个问题的一种优雅方法是什么?