Pydantic Model for Request Validation

Describe a request payload with a Pydantic model so types and constraints are enforced and clear validation errors are returned automatically.

PythonForm Validation

Code

snippet
from typing import Optional

from pydantic import BaseModel, EmailStr, Field, field_validator


class CreateUser(BaseModel):
    email: EmailStr
    age: int = Field(ge=13, le=120)
    nickname: Optional[str] = Field(default=None, max_length=32)

    @field_validator("nickname")
    @classmethod
    def normalize_nickname(cls, value: Optional[str]) -> Optional[str]:
        if value is None:
            return value
        trimmed = value.strip()
        return trimmed or None


create_user = CreateUser(email="[email protected]", age=36, nickname=" ada ")
print(create_user.model_dump())