[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) <odo@openerp.com>
Signed-off-by: Wolfgang Taferner <wtaferner@users.noreply.github.com>
This commit is contained in:
Wolfgang Taferner
2021-09-02 04:41:50 +00:00
committed by Olivier Dony
parent babf021812
commit 018d4856db
+7 -1
View File
@@ -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):