What are advanced Pydantic features for complex validation?

Answer

Advanced Pydantic v2 validation: Field validators: @field_validator('password') @classmethod def password_strength(cls, v): if len(v) < 8: raise ValueError('too short'); return v. Model validators: validate across multiple fields: @model_validator(mode='after') def check_password_match(self): if self.password != self.password_confirm: raise ValueError('Passwords do not match'); return self. Discriminated unions: Union[Cat, Dog] with a discriminator field for efficient deserialization. Custom types: subclass str with __get_validators__. Serialization modes: model_dump(mode='json') for JSON-serializable output. Aliases: Field(alias='user_name') for external API compatibility. Computed fields: @computed_field @property def full_name(self) -> str: return f'{self.first} {self.last}'. These features make Pydantic a comprehensive data modeling layer.