attach¶
- async AsyncBusinessModel.attach(data, primary_kv, parent_kv=None, allow_detached_data=True, allow_detached_table=False, check_db=True, check_logical=True, check_field=True, enable_pre_save=True, enable_post_save=True)¶
追加数据
使用业务模型数据保存接口进行数据保存, 允许将数据作为明细数据追加至已有的主数据上。
- 参数
parent_kv (
Union
[Any
,Dict
[str
,Any
],None
]) – 追加数据所属父级表的业务主键值或者键值对 (父级表不是模型主表时必须提供)allow_detached_data (
bool
) – 是否允许data中存在无合法关联关系的数据allow_detached_table (
bool
) – 是否允许data中存在无法关联的数据表check_db (
bool
) – 是否需要数据库属性校验(接口功能)check_logical (
bool
) – 是否需要逻辑属性校验(接口功能)check_field (
bool
) – 是否需要进行字段权限校验(接口功能)enable_pre_save (
bool
) – 是否开启保存前置逻辑(接口功能)enable_post_save (
bool
) – 是否开启保存后置逻辑(接口功能)
示例
例如有业务模型结构如下:
<ROOT> ├── <A> | └── <A1> └── <B>
4张数据表均包含2个字段
name, parent
, 其中子表的parent
与父表的name
字段关联。如果需要保存
<A>, <A1>
表的数据、作为<ROOT>
表name=R0
的明细数据:df_A = pd.DataFrame([ {'name': "A00"}, {'name': "A10"}, {'name': "A11"} ]) df_A1 = pd.DataFrame([ {'name': "A00_1", "parent": "A00"}, {'name': "A10_1", "parent": "A10"}, ]) model = BusinessModel('Tree') model.attach({'A': df_A, 'A1': df_A1}, {'name': 'R0'})
其中,由于指定
A
表数据挂在<ROOT>
表name=R0
上, 其关联字段parent
的数据可以省略(即使提供也不会生效,固定以R0
落库)- 返回类型
- 返回
保存结果
参见