我有一个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"/>
但没有成功。有什么我想念的吗?
答案 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"/>