【Odoo16前端源码分析】接口web_search_read

接口名称: web_search_read

请求路径: /web/dataset/call_kw/project.project/web_search_read

内容主题: 请求参数kwargs中fields的来源分析

以list类型为例

1 先转成archInfo对象,其中有activeFileds属性

/* web/static/src/views/list/list_view.js */

export const listView = {
    ..
    ArchParser: ListArchParser,
    ..
    props: (genericProps, view) => {
        const { ArchParser } = view;
        const { arch, relatedModels, resModel } = genericProps;
        const archInfo = new ArchParser().parse(arch, relatedModels, resModel);
        ..
    },
};

2 中间经过N层调用,过于复杂不便展示~~~

3 activeFields属性,传到params对象中,最后再转成this.filedNames

/* web/static/src/views/relational_model.js */

class DataPoint {
    constructor(model, params = {}, state = {}) {
        ..
        this.setActiveFields(params.activeFields);
        ..
    }
    ..
    get fieldNames() {
        return Object.keys(this.activeFields);
    }
    ..
    /**
     * @param {Object} [activeFields={}]
     */
    setActiveFields(activeFields) {
        this.activeFields = activeFields || {};
    }
}

class DynamicList extends DataPoint {
  ..
}

export class DynamicRecordList extends DynamicList {
    ..
    /**
     * @returns {Promise<Record[]>}
     */
    async _loadRecords() {
        ..
        const { records: rawRecords, length } =
            this.data ||
            (await this.model.orm.webSearchRead(
                this.resModel,
                this.domain,
                this.fieldNames,
                kwargs
            ));
        ..
    }
    ..
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值