'Return a dictionary mapping field names to onchange methods.'

@property
def _onchange_methods(self):

    def is_onchange(func):
        return (callable(func) and hasattr(func, '_onchange'))
    cls = type(self)
    methods = defaultdict(list)
    for (attr, func) in getmembers(cls, is_onchange):
        for name in func._onchange:
            if (name not in cls._fields):
                _logger.warning('@onchange%r    parameters    must    be    field    names', func._onchange)
            methods[name].append(func)
    cls._onchange_methods = methods
    return methods
