在系统中找不到外部 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"/>
我有一个 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"/>