在系统中找不到外部 ID

External ID not found in the system

我有一个 Odoo 10 cron xml,看起来像这样:

    <record forcecreate="True" id="saas_portal_suspend_expired" model="ir.cron">
        <field name="name">Saas portal - suspend expired clients</field>
        <field eval="True" name="active" />
        <field name="user_id" ref="base.user_root"/>
        <field name="interval_number">1</field>
        <field name="interval_type">days</field>
        <field name="numbercall">-1</field>
        <field name="doall" eval="False"/>
        <field name="model">saas_portal.client</field>
        <field name="function">_cron_suspend_expired_clients</field>
        <field name="args">()</field>
    </record>

这应该是有效的。我根据 Odoo v11 更改了代码以使其工作,所以它看起来像这样:

    <record forcecreate="True" id="saas_portal_suspend_expired" model="ir.cron">
        <field name="name">Saas portal - suspend expired clients</field>
        <field eval="True" name="active" />
        <field name="user_id" ref="base.user_root"/>
        <field name="interval_number">1</field>
        <field name="interval_type">days</field>
        <field name="numbercall">-1</field>
        <field name="doall" eval="False"/>
        <field name="model_id" ref="saas_portal.client"/>
        <field name="function">_cron_suspend_expired_clients</field>
        <field name="args">()</field>
    </record>

如你所见,我将字段模型更改为 model_id。但出于某种原因,我收到错误消息:

odoo.tools.convert.ParseError: "External ID not found in the system: saas_portal.client"

模块本身称为 saas_portal,我引用的模型有 _name = 'saas_portal.client' 我尝试使用 <field name="model_id" ref="saas_portal.saas_portal.client"/> 但没有成功。有什么我遗漏的吗?

我不知道这是否在 odoo 版本之间改变了但是 当你引用一个模型时,你使用这个:

    addon_name.model_model_name # (.) --> (_)

例如:

    base.model_res_users

你的情况:

      ref="model_saas_portal_client"
 # or
 your_addon_name.model_saas_portal_client

您应该在 ref 前加上 model_

<field name="model_id" ref="model_saas_portal_client"/>

或者,因为您的模块名称也是 saas_portal:

<field name="model_id" ref="saas_portal.model_saas_portal_client"/>