From: Esteban Maya Date: Tue, 4 Jun 2024 00:39:23 +0000 (-0500) Subject: 🐛 Fix set varchar limit when `max_length` is set on Pydantic models using Pydantic... X-Git-Tag: 0.0.19~14 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5bb4cffd4984647a2cba12ff94c5a1b9b577cf69;p=thirdparty%2Ffastapi%2Fsqlmodel.git 🐛 Fix set varchar limit when `max_length` is set on Pydantic models using Pydantic v2 (#963) Co-authored-by: Sebastián Ramírez --- diff --git a/sqlmodel/_compat.py b/sqlmodel/_compat.py index 72ec8330..d42a6242 100644 --- a/sqlmodel/_compat.py +++ b/sqlmodel/_compat.py @@ -72,6 +72,7 @@ def partial_init() -> Generator[None, None, None]: if IS_PYDANTIC_V2: + from annotated_types import MaxLen from pydantic import ConfigDict as BaseConfig from pydantic._internal._fields import PydanticMetadata from pydantic._internal._model_construction import ModelMetaclass @@ -201,7 +202,7 @@ if IS_PYDANTIC_V2: def get_field_metadata(field: Any) -> Any: for meta in field.metadata: - if isinstance(meta, PydanticMetadata): + if isinstance(meta, (PydanticMetadata, MaxLen)): return meta return FakeMetadata()