Hey all, writing some Odoo modules to get into module development.
I have a wizard.py
that specifies:
class MyWizard(models.TransientModel):
_name = 'my.wizard'
_description = 'Wizard'
line_ids = fields.One2many("my.wizard.line", "wizard_id", string="Lines")
And a wizard_line.py
that has:
class MyWizardLine(models.TransientModel):
_name = 'my.wizard.line'
_description = 'Wizard Line'
wizard_id = fields.Many2one('my.wizard', string="Wizard")
sale_line_id = fields.Many2one('sale.order.line', string="Sale Order Line")
product_id = fields.Many2one('product.product', string="Product", required=True)
Both are being imported in __init__.py
:
from . import wizard
from . import wizard_line
I have a view under views/wizard_view.xml
:
<odoo>
<record id="my_wizard_form" model="ir.ui.view">
<field name="name">my.wizard.form</field>
<field name="model">my.wizard</field>
<field name="arch" type="xml">
<form string="This is a wizard">
<group>
<field name="sale_id" readonly="1"/>
<field name="line_ids">
<tree>
<field name="product_id"/>
</tree>
</field>
</group>
<footer>
<button string="Cancel" class="btn-secondary" special="cancel"/>
</footer>
</form>
</field>
</record>
</odoo>
But this part:
<field name="line_ids">
<tree>
<field name="product_id"/>
</tree>
</field>
Throws an error saying:
Field "product_id" does not exist in model "my.wizard"
It appears as if the view is trying to access product_id
directly on my.wizard
while it should grab the one that's available through the line_ids
One2many reference to my.wizard.line
?
Am I doing this wrong?
It does, doesn't it...
However, line_ids is defined as follows in the parent class with name
my.wizard
:The line model has the name:
The view references the parent model:
And subsequently uses
line_ids
correctly:I feel like I'm making some obvious logic error here somewhere...
It looks like the error might be related to how the nested class is being referenced in the view. Double-check that the correct model name is used in the record or field tags within the XML. Also, make sure any custom fields in the nested class are properly defined and accessible.
Hi Emad,
Thank you so much! I knew it HAD to be some new tag in Odoo 18 :-)
I can't accept or upvote because I don't have the karma to do so yet. But when I get my 5 karma, I'll revisit, accept and upvote :-)