From 45354ee9f0f9c11045523913e75531b2490bef64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Voron?= Date: Sun, 29 Aug 2021 15:35:56 +0200 Subject: [PATCH] Use default_factory in model for UUID4 generation --- fastapi_users/models.py | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) 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