diff --git a/sqlmodel/main.py b/sqlmodel/main.py index 84478f24cf..86672d7c55 100644 --- a/sqlmodel/main.py +++ b/sqlmodel/main.py @@ -4,7 +4,7 @@ import ipaddress import uuid import weakref -from collections.abc import Mapping, Sequence, Set +from collections.abc import Mapping, Sequence from datetime import date, datetime, time, timedelta from decimal import Decimal from enum import Enum @@ -211,8 +211,7 @@ def Field( serialization_alias: Optional[str] = None, title: Optional[str] = None, description: Optional[str] = None, - exclude: Union[Set[Union[int, str]], Mapping[Union[int, str], Any], Any] = None, - include: Union[Set[Union[int, str]], Mapping[Union[int, str], Any], Any] = None, + exclude: Union[bool, None] = None, const: Optional[bool] = None, gt: Optional[float] = None, ge: Optional[float] = None, @@ -254,8 +253,7 @@ def Field( serialization_alias: Optional[str] = None, title: Optional[str] = None, description: Optional[str] = None, - exclude: Union[Set[Union[int, str]], Mapping[Union[int, str], Any], Any] = None, - include: Union[Set[Union[int, str]], Mapping[Union[int, str], Any], Any] = None, + exclude: Union[bool, None] = None, const: Optional[bool] = None, gt: Optional[float] = None, ge: Optional[float] = None, @@ -306,8 +304,7 @@ def Field( serialization_alias: Optional[str] = None, title: Optional[str] = None, description: Optional[str] = None, - exclude: Union[Set[Union[int, str]], Mapping[Union[int, str], Any], Any] = None, - include: Union[Set[Union[int, str]], Mapping[Union[int, str], Any], Any] = None, + exclude: Union[bool, None] = None, const: Optional[bool] = None, gt: Optional[float] = None, ge: Optional[float] = None, @@ -339,8 +336,7 @@ def Field( serialization_alias: Optional[str] = None, title: Optional[str] = None, description: Optional[str] = None, - exclude: Union[Set[Union[int, str]], Mapping[Union[int, str], Any], Any] = None, - include: Union[Set[Union[int, str]], Mapping[Union[int, str], Any], Any] = None, + exclude: Union[bool, None] = None, const: Optional[bool] = None, gt: Optional[float] = None, ge: Optional[float] = None, @@ -379,7 +375,6 @@ def Field( "title": title, "description": description, "exclude": exclude, - "include": include, "const": const, "gt": gt, "ge": ge, diff --git a/tests/test_pydantic/test_field.py b/tests/test_pydantic/test_field.py index 140b02fd9b..68858cf719 100644 --- a/tests/test_pydantic/test_field.py +++ b/tests/test_pydantic/test_field.py @@ -54,3 +54,16 @@ class Model(SQLModel): instance = Model(id=123, foo="bar") assert "foo=" not in repr(instance) + + +def test_exclude(): + class Model(SQLModel): + id: int + name: str + value: int = Field(exclude=True) + + instance = Model(id=1, name="test", value=42) + dict_representation = instance.model_dump() + assert "id" in dict_representation + assert "name" in dict_representation + assert "value" not in dict_representation