diff --git a/doc/reference/orm.rst b/doc/reference/orm.rst index 1ef0b5ca422..7d2b3bd1ac6 100644 --- a/doc/reference/orm.rst +++ b/doc/reference/orm.rst @@ -332,6 +332,28 @@ dependencies are modified. .. note:: The related fields are computed in sudo mode. +.. warning:: + + You cannot chain :class:`~odoo.fields.Many2many` or :class:`~odoo.fields.One2many` fields in ``related`` fields dependencies. + + ``related`` can be used to refer to a :class:`~odoo.fields.One2many` or + :class:`~odoo.fields.Many2many` field on another model on the + condition that it's done through a ``Many2one`` relation on the current model. + ``One2many`` and ``Many2many`` are not supported and the results will not be + aggregated correctly:: + + m2o_id = fields.Many2one() + m2m_ids = fields.Many2many() + o2m_ids = fields.One2many() + + # Supported + d_ids = fields.Many2many(related="m2o_id.m2m_ids") + e_ids = fields.One2many(related="m2o_id.o2m_ids") + + # Won't work: use a custom Many2many computed field instead + f_ids = fields.Many2many(related="m2m_ids.m2m_ids") + g_ids = fields.One2many(related="o2m_ids.o2m_ids") + .. _reference/fields/automatic: Automatic fields