代码之家  ›  专栏  ›  技术社区  ›  wasd

在系统中找不到外部ID

  •  2
  • wasd  · 技术社区  · 7 年前

    我有一个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\u id。但由于某些原因,我出现了错误:

    奥多。工具。转换ParseError:“在系统中找不到外部ID:saas\u portal.client”

    该模块本身称为saas\u门户,我所引用的模型的名称为“saas\u门户”。客户'我试图使用 <field name="model_id" ref="saas_portal.saas_portal.client"/> 但没有成功。我丢了什么?

    2 回复  |  直到 7 年前
        1
  •  4
  •   Charif DZ    7 年前

    我不知道这是否在奥多版本之间有所改变,但是 当您参考模型时,您使用:

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

    前任:

        base.model_res_users
    

    在您的情况下:

          ref="model_saas_portal_client"
     # or
     your_addon_name.model_saas_portal_client
    
        2
  •  3
  •   Lucas    7 年前

    您应该使用前缀ref model_ .

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

    或者,由于您的模块名称也是saas\u门户:

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