diff --git a/fastapi_users/models.py b/fastapi_users/models.py index 193b95c0..9f75bd3f 100644 --- a/fastapi_users/models.py +++ b/fastapi_users/models.py @@ -1,7 +1,7 @@ import uuid from typing import List, Optional, TypeVar -from pydantic import UUID4, BaseModel, EmailStr, validator +from pydantic import Field, UUID4, BaseModel, EmailStr class CreateUpdateDictModel(BaseModel): @@ -24,16 +24,12 @@ class CreateUpdateDictModel(BaseModel): class BaseUser(CreateUpdateDictModel): """Base User model.""" - id: Optional[UUID4] = None + id: UUID4 = Field(default_factory=uuid.uuid4) email: Optional[EmailStr] = None is_active: Optional[bool] = True is_superuser: Optional[bool] = False is_verified: Optional[bool] = False - @validator("id", pre=True, always=True) - def default_id(cls, v): - return v or uuid.uuid4() - class BaseUserCreate(CreateUpdateDictModel): email: EmailStr @@ -48,7 +44,6 @@ class BaseUserUpdate(BaseUser): class BaseUserDB(BaseUser): - id: UUID4 email: EmailStr is_active: bool is_superuser: bool @@ -65,7 +60,7 @@ UD = TypeVar("UD", bound=BaseUserDB) class BaseOAuthAccount(BaseModel): """Base OAuth account model.""" - id: Optional[UUID4] = None + id: UUID4 = Field(default_factory=uuid.uuid4) oauth_name: str access_token: str expires_at: Optional[int] = None @@ -73,10 +68,6 @@ class BaseOAuthAccount(BaseModel): account_id: str account_email: str - @validator("id", pre=True, always=True) - def default_id(cls, v): - return v or uuid.uuid4() - class Config: orm_mode = True