Jinja2 将关系对象列表传递给dbt_utils.union_Relation宏失败

Jinja2 将关系对象列表传递给dbt_utils.union_Relation宏失败,jinja2,dbt,Jinja2,Dbt,与及 我正在使用dbt\u utilspackage(0.5.0)中的union\u relations 我创建了我的宏,该宏使用完全限定名称列表(如数据库.schema.identifier)将其拆分,并使用api.Relations.create创建一个关系并将每个关系附加到列表中 {{list_of u relation}}被赋予了dbt_utils.union_relations(作为relations=my_宏([list of fully qualified name])),它给了我

与及

我正在使用
dbt\u utils
package(0.5.0)中的
union\u relations

我创建了我的宏,该宏使用完全限定名称列表(如
数据库.schema.identifier
)将其拆分,并使用
api.Relations.create
创建一个关系并将每个关系附加到列表中


{{list_of u relation}}
被赋予了
dbt_utils.union_relations
(作为
relations=my_宏([list of fully qualified name])
),它给了我一个
\u is_relationship
错误,我确实使用了
log
进行调试,看看它是否真的创建了一个关系,它确实创建了。可能有什么问题?

听起来您的宏是这样写的:

{% macro my_macro(names) %}
  {% set list_of_relations = [] %}
  {% for name in names %}
    {% set relation = something(name) %}
    {% do list_of_relations.append(relation) %}
  {% endfor %}
  {{ list_of_relations }}
{% endmacro %}
您不需要使用
{{list\u of_relationship}}
,而是需要
{return(list\u of_relationship)}
{%do return(list\u of_relationship)%}
。问题是,
{…}
在jinja宏中将内容转换为字符串,而宏默认返回字符串


return
上的文档是。

听起来您有一个宏是这样写的:

{% macro my_macro(names) %}
  {% set list_of_relations = [] %}
  {% for name in names %}
    {% set relation = something(name) %}
    {% do list_of_relations.append(relation) %}
  {% endfor %}
  {{ list_of_relations }}
{% endmacro %}
您不需要使用
{{list\u of_relationship}}
,而是需要
{return(list\u of_relationship)}
{%do return(list\u of_relationship)%}
。问题是,
{…}
在jinja宏中将内容转换为字符串,而宏默认返回字符串

return
上的文档是