How to set a Dynamic domain in odooV14 on a One2many list?

Dries Cox


I am looking for a way to set a dynamic filter on the order lines in a tree view,  so that the lines are filtered depending on a field on the parent order. I tried to work with dynamic domains, but when I do that I get a warning in the console:

odoo.models: onchange method SaleOrder.onchange_active_so_section returned a domain, this is deprecated

Also the list isn't filtered, all the lines stay visible. What is the correct way to do this in odoo14?

Here is my code:

class SaleOrder(models.Model):
_inherit =

""" FIELDS """
active_so_section_id = fields.Many2one('sale.so_section', string="Active Section")
def onchange_active_so_section(self):
domain = {'domain': {'order_line': [('id', '=',                           ]}}

    return domain
The domain I get from this onchange function is like:
{'domain': {'order_line': [('id', '=', 67)]}}