fix record model empty object instantiation
This commit is contained in:
parent
917debeea8
commit
3d6d9c1195
1 changed files with 10 additions and 8 deletions
|
|
@ -252,15 +252,17 @@ class RecordModel(BaseModel):
|
||||||
object.__setattr__(self, "__dict__", {})
|
object.__setattr__(self, "__dict__", {})
|
||||||
# Load data from DB first
|
# Load data from DB first
|
||||||
result = repo_query(f"SELECT * FROM {self.record_id};")
|
result = repo_query(f"SELECT * FROM {self.record_id};")
|
||||||
|
|
||||||
|
# Initialize empty object with None for all non-ClassVar fields
|
||||||
|
db_data = {
|
||||||
|
field_name: None
|
||||||
|
for field_name, field_info in self.model_fields.items()
|
||||||
|
if not str(field_info.annotation).startswith("typing.ClassVar")
|
||||||
|
}
|
||||||
|
|
||||||
|
# Update with DB data if it exists
|
||||||
if result:
|
if result:
|
||||||
db_data = result[0]
|
db_data.update(result[0])
|
||||||
else:
|
|
||||||
# Initialize empty object with None for Optional fields
|
|
||||||
db_data = {
|
|
||||||
field_name: None
|
|
||||||
for field_name, field_info in self.model_fields.items()
|
|
||||||
if not str(field_info.annotation).startswith("typing.ClassVar")
|
|
||||||
}
|
|
||||||
|
|
||||||
# Initialize with DB data and any overrides
|
# Initialize with DB data and any overrides
|
||||||
super().__init__(**{**db_data, **kwargs})
|
super().__init__(**{**db_data, **kwargs})
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue