Odată cu lansarea Pydantic v2 (scris nativ în Rust pentru viteză extremă), vechile adnotări @validator și @root_validator au fost înlocuite de noua API standardizată:
@field_validator('camp'): Validează și transformă valoarea unui singur atribut specific.@model_validator(mode='after'): Rulează după ce toate câmpurile individuale au fost validate și permite validări încrucișate între mai multe câmpuri (de exemplu: verificarea că data de sfârșit este ulterioară datei de început).
Exemplu: Validare câmp CNP și validare încrucișată de parole
from pydantic import BaseModel, field_validator, model_validator
class RegisterRequest(BaseModel):
username: str
password: str
confirm_password: str
@field_validator("username")
@classmethod
def validate_username(cls, v: str) -> str:
if not v.isalnum():
raise ValueError("Numele de utilizator trebuie să conțină doar litere și cifre")
return v.lower()
@model_validator(mode="after")
def verify_passwords_match(self):
if self.password != self.confirm_password:
raise ValueError("Parolele introduse nu coincid!")
return self
Întrebări & Exemple de Cod:
@field_validator și @model_validator în Pydantic v2Ai o nelămurire despre utilizarea comenzii
@field_validator și @model_validator în Pydantic v2sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.