From 018d4856db134edad51352d2f9edeba99e5807f4 Mon Sep 17 00:00:00 2001 From: Wolfgang Taferner Date: Thu, 29 Jul 2021 11:48:01 +0000 Subject: [PATCH] [FIX] models: log field names in api.onchange warning Without this, the warning isn't very actionable. closes odoo/odoo#75858 X-original-commit: afe7c9895914125fb31dbfde15903fa41e000948 Signed-off-by: Olivier Dony (odo) Signed-off-by: Wolfgang Taferner --- odoo/models.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/odoo/models.py b/odoo/models.py index 1cbc3471c1f..f0d92b697f3 100644 --- a/odoo/models.py +++ b/odoo/models.py @@ -802,10 +802,16 @@ class BaseModel(metaclass=MetaModel): cls = type(self) methods = defaultdict(list) for attr, func in getmembers(cls, is_onchange): + missing = [] for name in func._onchange: if name not in cls._fields: - _logger.warning("@onchange%r parameters must be field names", func._onchange) + missing.append(name) methods[name].append(func) + if missing: + _logger.warning( + "@api.onchange%r parameters must be field names -> not valid: %s", + func._onchange, missing + ) # add onchange methods to implement "change_default" on fields def onchange_default(field, self):