2

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

4

2 回答 2

4

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

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

前任:

    base.model_res_users

在你的情况下:

      ref="model_saas_portal_client"
 # or
 your_addon_name.model_saas_portal_client
于 2017-11-30T15:08:01.740 回答
3

您应该在 ref 前加上model_.

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

或者,由于您的模块名称也是 saas_portal:

<field name="model_id" ref="saas_portal.model_saas_portal_client"/>
于 2017-11-30T15:34:28.210 回答