violates unique constraint "roles_users_user_id_project_id_key"
DETAIL: Key (user_id, project_id)=(a33936e6-0c8b-4b6f-9a69-9a71f5a7a30b, 53) already exists.
[SQL: INSERT INTO roles_users (user_id, role_id, project_id) VALUES (%s, %s, %s) RETURNING roles_users.id]
[parameters: ('a33936e6-0c8b-4b6f-9a69-9a71f5a7a30b', 5, 53)]
Как по человечески забрать описание ошибки?
>>> DETAIL: Key (user_id, project_id)=(a33936e6-0c8b-4b6f-9a69-9a71f5a7a30b, 53) already exists.
Драйвер склеивает все в строку и как таковых аргументов и параметров в экзепшна нету.
exc.orig.detail Возможно, что до исключения от asyncpg придется как-то дольше добираться
не все так просто… AttributeError: 'IntegrityError' object has no attribute 'detail'
Это какая IntegrityError?
from sqlalchemy.exc import IntegrityError except IntegrityError as exc: foo = str(exc.orig.detail) print(foo)
Ну, это IntegrityError от обертки, которую sqlalchemy делает. От нее нужно дойти до исключения, которые драйвер выкидывает
Обсуждают сегодня