certflow.views.bases.query_data_source module¶
查询数据源协议与通用引擎(阶段 A 抽象层)
定义 QueryDataSource 协议,使 BaseQueryView 能以统一方式驱动不同数据源
(销售计划 / 校正队列 / 基础数据 / BOM 查询),无需在视图里写 if 分支。
能力标志(capability flags)决定 UI 行为:
- supports_server_sort:列头点击走「重新查询」(销售计划 / 校正队列)。
- supports_server_paging:分页由服务端承担(销售计划 / 校正队列)。
- quick_search_or:是否支持跨字段 OR 快查(仅销售计划)。
- editable / correction:是否暴露行内编辑 / 校正动作(客户端源按需在子类开启)。
客户端数据源(基础数据 / BOM)复用本模块的 client_filter_records /
client_sort_records 在内存中过滤排序,避免给每个表写一遍逻辑。
- certflow.views.bases.query_data_source.client_filter_records(records, conditions)[源代码]¶
客户端条件过滤。
conditions形如{field: {"value": v, "operator": op}},支持的 operator:contains/eq/ne/gte/lte/gt/lt/between``(value=[lo,hi]) / ``is_null/is_not_null。
- certflow.views.bases.query_data_source.client_sort_records(records, order_by, order_desc=False)[源代码]¶
客户端排序:None 恒排末尾;同列类型同质,数字按数值、其余按字符串。
- certflow.views.bases.query_data_source.export_records_to_csv(records, columns, path)[源代码]¶
把记录按列定义导出为 CSV(UTF-8-BOM,Excel 友好)。返回行数。
- class certflow.views.bases.query_data_source.QueryDataSource(*args, **kwargs)[源代码]¶
基类:
Protocol查询数据源协议(结构化契约,供
BaseQueryView驱动)。