Skip to content

Commit 4b9969f

Browse files
committed
refactor(pydantic_changedetect): #46 📦 Remove usage of last self.model_fields, use clkass property instead
1 parent c420030 commit 4b9969f

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

‎pydantic_changedetect/changedetect.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ def model_changed_fields(self) -> set[str]:
9090
"""Return list of all changed fields, submodels are considered as one field"""
9191

9292
changed_fields = self.model_self_changed_fields.copy()
93-
for field_name, model_field in self.model_fields.items():
93+
for field_name, model_field in self.__class__.model_fields.items():
9494
# Support for instances created through model_construct, when not all fields have been defined
9595
if field_name not in self.__dict__:
9696
continue
@@ -137,7 +137,7 @@ def model_changed_fields_recursive(self) -> set[str]:
137137
"""Return a list of all changed fields recursive using dotted syntax"""
138138

139139
changed_fields = self.model_self_changed_fields.copy()
140-
for field_name, model_field in self.model_fields.items():
140+
for field_name, model_field in self.__class__.model_fields.items():
141141
field_value = self.__dict__[field_name]
142142

143143
# Value is a ChangeDetectionMixin instance itself
@@ -258,15 +258,15 @@ def __setattr__(self, name, value) -> None: # noqa: ANN001
258258

259259
# Get original value
260260
original_update = {}
261-
if name in self.model_fields and name not in self.model_original:
261+
if name in self.__class__.model_fields and name not in self.model_original:
262262
original_update[name] = self.__dict__[name]
263263

264264
# Store changed value using pydantic
265265
super().__setattr__(name, value)
266266

267267
# Check if value has actually been changed
268268
has_changed = True
269-
if name in self.model_fields:
269+
if name in self.__class__.model_fields:
270270
# Fetch original from original_update so we don't have to check everything again
271271
original_value = original_update.get(name, None)
272272
# Don't use value parameter directly, as pydantic validation might have changed it

0 commit comments

Comments
 (0)