From 7768015b4c87a4f86d8fecc32169a40a3e2c1f71 Mon Sep 17 00:00:00 2001 From: STocidlowski <100541507+STocidlowski@users.noreply.github.com> Date: Wed, 14 May 2025 12:40:15 -0400 Subject: [PATCH 1/2] Pydantic 'alias' bug This workaround fixes Pydantic serialization/deserialization while not modifying the internal alias logic. I cannot figure out why alias is not being passed through anymore. For example, I was needing to add schema_extra with these key values in order to read data from a Json with different field names. Thank you for your consideration. --- sqlmodel/main.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/sqlmodel/main.py b/sqlmodel/main.py index 38c85915aa..7d33e74617 100644 --- a/sqlmodel/main.py +++ b/sqlmodel/main.py @@ -387,6 +387,11 @@ def Field( schema_extra: Optional[Dict[str, Any]] = None, ) -> Any: current_schema_extra = schema_extra or {} + + if alias: + current_schema_extra['validation_alias'] = alias + current_schema_extra['serialization_alias'] = alias + field_info = FieldInfo( default, default_factory=default_factory, From 95d11308792243fdc66ce6bb658c9ee04794778f Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 14 May 2025 16:50:11 +0000 Subject: [PATCH 2/2] =?UTF-8?q?=F0=9F=8E=A8=20[pre-commit.ci]=20Auto=20for?= =?UTF-8?q?mat=20from=20pre-commit.com=20hooks?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sqlmodel/main.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sqlmodel/main.py b/sqlmodel/main.py index 7d33e74617..e015b2d686 100644 --- a/sqlmodel/main.py +++ b/sqlmodel/main.py @@ -389,9 +389,9 @@ def Field( current_schema_extra = schema_extra or {} if alias: - current_schema_extra['validation_alias'] = alias - current_schema_extra['serialization_alias'] = alias - + current_schema_extra["validation_alias"] = alias + current_schema_extra["serialization_alias"] = alias + field_info = FieldInfo( default, default_factory=default_factory,