I'm new to Odoo. While trying to call a server action from a menuitem it can't find the model_id.
My view code:
<?xml version="1.0" encoding="UTF-8"?>
<openerp>
<data>
<record model="ir.actions.server" id="open_calculator">
<field name="name">Open Calculator</field>
<field name="model_id" ref="calculator"/>
<field name="type">ir.actions.server</field>
<field name="state">code</field>
<field name="code">
<!--code-->
</field>
</record>
<!-- Top menu item -->
<menuitem name="Calculator" id="calculator.menu_root"
action="open_calculator"/>
</data>
</openerp>
The error:
raise ValueError('External ID not found in the system: %s' % (xmlid)) ParseError: "External ID not found in the system: calculator.calculator" while parsing /home/administrador/Escritorio/calculator-test-project/calculator/views/views.xml:4, near
<record model="ir.actions.server" id="open_calculator">
<field name="name">Open Calculator</field>
<field name="model_id" ref="calculator"/>
<field name="type">ir.actions.server</field>
<field name="state">code</field>
<field name="code">
<!--code-->
</field>
</record>
Model:
# -*- coding: utf-8 -*-
from openerp import models, fields, api, http
class Calculator(models.Model):
_name = 'calculator'
What am I missing?
It appears that there is a convention you have to follow in model_id's ref attr. You have to add '_model' before your model name:
<field name="model_id" ref="model_calculator"/>
instead of:
<field name="model_id" ref="calculator"/>
or it won't work.
Just as in this question