系统中找不到外部标识

时间:2017-11-30 14:40:18

标签: xml python-3.x openerp odoo-11

我有一个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:“系统中找不到外部ID:saas_portal.client”

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

2 个答案:

答案 0 :(得分:3)

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

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

例如:

    base.model_res_users

在你的情况下:

      ref="model_saas_portal_client"
 # or
 your_addon_name.model_saas_portal_client

答案 1 :(得分:3)

您应在参考号前加model_

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

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

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