You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Directus Flows在创建记录时复制列绝对值到同集合另一列

结论

完全可以通过Directus自带的Flows功能实现该需求,无需开发自定义扩展,按步骤配置即可生效。

具体配置步骤

1. 新建Flow并配置触发器

  • 进入Directus后台「设置 - Flows」页面,新建空白Flow
  • 触发器类型选择事件钩子(Event Hook)
  • 钩子类型选择过滤器(Filter),触发事件勾选items.create,绑定你存储负数值的对应集合
  • 该触发时机为数据库写入操作执行前,可直接修改待入库的数据,无需额外发起更新请求,性能最优。

2. 添加数据处理逻辑

在触发器后新增「运行脚本(Run Script)」操作,将以下代码粘贴到脚本编辑区,替换字段名为你集合里的实际字段名即可:

module.exports = async function(data) {
  // 替换为实际字段名:negative_col是存负数的源字段,abs_col是存绝对值的目标字段
  const sourceVal = data.$payload.negative_col;
  if (sourceVal !== null && sourceVal !== undefined) {
    data.$payload.abs_col = Math.abs(Number(sourceVal));
  }
  return data;
}

可选配置(操作执行后触发模式)

如果你选择在记录创建完成后触发逻辑,可将钩子类型改为动作(Action)、触发时机选After,后续新增「更新数据(Update Data)」操作:

  • 筛选条件匹配刚创建记录的主键ID(从触发器返回的payload中获取)
  • 将目标字段赋值为源字段的绝对值即可
    该模式效果和前置触发一致,仅会多产生一次数据库更新操作。

注意:配置前请确认两个字段均已在集合中创建、类型为数值类(float/decimal/integer均可),同时Flow的运行身份拥有对应集合的写入权限。

配置完成后保存启用Flow即可生效,新建记录时源字段填入-45.20这类负数值,目标字段会自动写入对应的绝对值45.20,完全匹配需求。

内容的提问来源于stack exchange,提问作者bcsta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 15:27:22