Можно ли сохранить PhoneNumberType из SQLalchemy как ноль?

Я создаю API с помощью webargs и python, и у меня есть условие, что пользователь должен указать либо номер телефона, либо адрес электронной почты. Если пользователь предоставляет только адрес электронной почты, то, когда sqlalchemy пытается создать экземпляр PhoneNumberType, я получаю ожидаемую ошибку:

sqlalchemy_utils.types.phone_number.PhoneNumberParseException: (1) (1) Предоставленный номер телефона был Нет.

мой вопрос: как я могу сделать это поле базы данных способным принимать нулевой номер телефона и просто сохранять эту запись нулевой?

Вот часть моей пользовательской модели:

import flask_sqlalchemy as sa
...
phone         = db.Column(db.Unicode(20), nullable=True)
country_code  = db.Column(db.Unicode(8), nullable=False)
_phone        = sa.orm.composite(PhoneNumber, phone, country_code)

код страны нужен по другой причине, но есть ли способ заставить сказать... _Phone null??

1 ответ

Нет, потому что библиотека зависит от библиотеки Google, которая должна принимать аргумент raw_number. Вы можете сделать попытку / кроме и игнорировать

phonenumbers.phonenumberutil.NumberParseException

Если поле пустое, объект не будет создан, даже если вы измените запись вручную.

Другие вопросы по тегам