могу пока понять, каким образом мне можно сделать валидацию имейла. А именно, при регистрации юзер вводит имейл, который должен быть уникальным, но если не делать валидацию то получаю такую ошибку:
{
"detail": "Database error: (sqlalchemy.dialects.postgresql.asyncpg.IntegrityError) <class 'asyncpg.exceptions.UniqueViolationError'>: duplicate key value violates unique constraint \"users_email_key\"\nDETAIL: Key (email)=(olegkuzmenko2005@gmail.com) already exists.\n[SQL: INSERT INTO users (id, username, email, name, surname, hashed_password, is_active, roles) VALUES ($1::UUID, $2::VARCHAR, $3::VARCHAR, $4::VARCHAR, $5::VARCHAR, $6::VARCHAR, $7::BOOLEAN, $8)]\n[parameters: (UUID('caf0e186-89ac-46b5-9dd2-9e2160e4442f'), '@olegkuzmenko2005', 'olegkuzmenko2005@gmail.com', 'Oleg', 'Kuzmenko', '$5$rounds=535000$BbjK3Tj04IXXsznn$N08Hsj3DeYhz0o6TN6XDLrJWNcOHzMEfkLii2hfs190', True, [<Roles.role_user: 'role_user'>])]\n(Background on this error at: https://sqlalche.me/e/20/gkpj)"
}
Так вот, каким образом я могу сделать валидацию в модели Pydantic и проверять уникальность имейла в бд и возможно ли это вообще сделать с учетом того, что я использую асинхронное подключение к бд?
Пидантик отвечает за проверку формата данных, а остальное - это уже твоя логика
а, то есть лучше эту проверку сделать в другом месте и райзить HTTPExcpetion?
это не валидация же. тебе перед регистрацией просто проверять есть ли такой email в системе
Очень абстракино ла
Обсуждают сегодня