centralize attributes()  to widget and "merge" instead override
demo fo hasOne  in dataedit demo