I would like to set default email in case email not provided, i.e:
name = a
last_name = b
email = None
email will become "a_b@email.com"
I tried something like that but obviously didn't work as the name,last_name not define in function.
class User(BaseModel):
name: Optional[str] = ''
last_name: Optional[str] = ''
email: EmailStr
@validator('email')
def set_email(cls, email):
if not email:
return name + last_name + '@email.com'
else:
return email
Update- still not working, i tried:
@root_validator(pre=True)
def email_set_config(cls, values):
email, name ,last_name = values.get('email'), values.get('name') , values.get('last_name')
if email is None :
email= name + '_' + name + '@' + last_name
return values
Solution:
added to Class :
--Update
- Actually it is working without define class Config:
class Config:
validate_assignment = True
@validator('email')
def set_email(cls, v, values, **kwargs):
return email or values["name"] + '_' + values["name"] + '@' + ["last_name"]