diff --git a/sqlmodel/main.py b/sqlmodel/main.py index 38c85915aa..c7ad166184 100644 --- a/sqlmodel/main.py +++ b/sqlmodel/main.py @@ -992,17 +992,17 @@ def sqlmodel_update( use_update = (update or {}).copy() if isinstance(obj, dict): for key, value in {**obj, **use_update}.items(): - if key in get_model_fields(self): + if key in get_model_fields(self.__class__): setattr(self, key, value) elif isinstance(obj, BaseModel): - for key in get_model_fields(obj): + for key in get_model_fields(obj.__class__): if key in use_update: value = use_update.pop(key) else: value = getattr(obj, key) setattr(self, key, value) for remaining_key in use_update: - if remaining_key in get_model_fields(self): + if remaining_key in get_model_fields(self.__class__): value = use_update.pop(remaining_key) setattr(self, remaining_key, value) else: