批量操作¶
示例:筛选库存低于 10 且状态为 ready 的商品,涨价 7%,并将状态改为 order。
1. 选择范围¶
在 Bulk change 中选择当前页高亮行,或选择所有匹配记录(包括其他页)。范围始终受 queryset、当前权限和项目策略限制。
等价的 API 条件
{"and":[{"field":"stock","op":"lt","value":10},{"field":"status","op":"eq","value":"ready"}]}
2. 添加赋值¶
| 字段 | 新值 |
|---|---|
price |
=ROUND([price]*1.07,2) |
status |
order |
所有赋值读取原始数据,顺序不影响结果。
3. 生成预览¶
预览固定所有候选主键、原始版本、计算结果和错误。界面展示总数与前 50 条结果。后来才匹配条件的商品不会加入计划;更改条件或公式需要重新预览。
4. 确认执行¶
执行接受已生成的操作 ID。重复调用不会再次涨价。写入前会重新检查权限和版本。已变化的记录产生冲突,修正后需建立新计划。
5. 查看报告¶
历史记录包含状态、计数、逐行结果和错误;可见字段和历史访问均按当前权限判断。
| 模式 | 保证 |
|---|---|
| 同步 | 单个事务,全成或全败 |
| 后台 | 分批提交,可能部分完成 |
大型操作¶
默认后台阈值为 5000 行,批次大小为 200。未配置 BackgroundAdapter 时,超出阈值会在昂贵处理前拒绝。大型预览也通过适配器运行。软件包不附带队列或 Celery worker。