【问题标题】:Retrieving model fields via Odoo XML-RPC API and false通过 Odoo XML-RPC API 和 false 检索模型字段
【发布时间】:2021-05-14 23:32:41
【问题描述】:

我使用 Java XML-RPC 客户端成功地从“ir.models”及其字段“ir.model.fields”检索模型为documented。但是,模型字段的 store 字段让我感到困惑。通常是false,例如对于模型res.users 的字段,例如phoneemailzip 等,只有少数像logincreate_date 将其设置为true。这是故意的吗?我的意思是 - 根据 documentation - store=false 标记计算字段,但我仍然可以在通过 API 创建 res.users 记录时设置 email

另外,我想知道为什么未设置的字段值通过 XML-RPC 表示为 false。我无法将falseboolean ttyped 字段值与其未设置值区分开来?

【问题讨论】:

    标签: java odoo xml-rpc odoo-14


    【解决方案1】:

    那是因为res.users 有一个有趣的继承情况。

    此模型通过在模型定义中使用 _inherits = {'res.partner': 'partner_id'} 表示法来嵌入合作伙伴。在数据库中,您将有两个表:res_usersres_partner。它们之间的关系是由表res_users中的外键partner_id建立的。

    但在 python 方面,这种继承将导致模型 res.users 也将具有 res.partner 模型的所有字段。并且 odoo 将模型 res.users 记录的 res.partner 字段标记为未存储,因为它们存储在另一个模型表中。

    对于您的示例,logincreate_date 是真实的res.users 字段,因此它们存储在res_users 表中。但是phoneemailzip 以及更多是res.partner 字段并存储在表res_partner 中。

    【讨论】:

    • 感谢您的澄清,到目前为止,我还没有阅读文档中有关继承的任何内容。您是否知道了解有关 odoo 数据模型和继承的更多信息的好资源?我可以从 XML-RPC API 获取继承信息吗?
    • 我通常使用official documentation。而且我不知道这是否可以通过使用 XMLRPC 或 JSONRPC。
    • 完整:发现可以通过“ir.models”字段inherited_model_ids检索继承。
    猜你喜欢
    • 1970-01-01
    • 2021-03-02
    • 1970-01-01
    • 2019-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-22
    相关资源
    最近更新 更多