Можно ли сохранить 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
Если поле пустое, объект не будет создан, даже если вы измените запись вручную.