diff --git a/sqlmodel/main.py b/sqlmodel/main.py index 3532e81a8e..b263e43491 100644 --- a/sqlmodel/main.py +++ b/sqlmodel/main.py @@ -240,6 +240,7 @@ def Field( max_length: Optional[int] = None, allow_mutation: bool = True, regex: Optional[str] = None, + pattern: Optional[str] = None, discriminator: Optional[str] = None, repr: bool = True, primary_key: Union[bool, UndefinedType] = Undefined, @@ -285,6 +286,7 @@ def Field( max_length: Optional[int] = None, allow_mutation: bool = True, regex: Optional[str] = None, + pattern: Optional[str] = None, discriminator: Optional[str] = None, repr: bool = True, primary_key: Union[bool, UndefinedType] = Undefined, @@ -339,6 +341,7 @@ def Field( max_length: Optional[int] = None, allow_mutation: bool = True, regex: Optional[str] = None, + pattern: Optional[str] = None, discriminator: Optional[str] = None, repr: bool = True, sa_column: Union[Column, UndefinedType] = Undefined, # type: ignore @@ -374,6 +377,7 @@ def Field( max_length: Optional[int] = None, allow_mutation: bool = True, regex: Optional[str] = None, + pattern: Optional[str] = None, discriminator: Optional[str] = None, repr: bool = True, primary_key: Union[bool, UndefinedType] = Undefined, @@ -389,6 +393,12 @@ def Field( schema_extra: Optional[Dict[str, Any]] = None, ) -> Any: current_schema_extra = schema_extra or {} + + if IS_PYDANTIC_V2: + current_schema_extra.update(pattern=pattern or regex) + else: + current_schema_extra.update(regex=regex or pattern) + field_info = FieldInfo( default, default_factory=default_factory, @@ -411,7 +421,6 @@ def Field( min_length=min_length, max_length=max_length, allow_mutation=allow_mutation, - regex=regex, discriminator=discriminator, repr=repr, primary_key=primary_key,