我有一些包含数据的表,我想返回给用户,而不是电话对象,一个字符串。有一个例子
import pydantic
import sqlalchemy
from typing import Optional
class Base(pydantic.BaseModel):
class Config:
orm_mode = True
class PhoneOrm:
id = sqlalchemy.Column(
sqlalchemy.Integer,
primary_key=True
)
number = sqlalchemy.Column(
sqlalchemy.String(length=16)
)
def __str__(self):
return f"+{self.number}"
class PhoneModel(Base):
id: int
number: str = pydantic.Field(min_length=12, max_length=16)
def __str__(self):
return f"+{self.number}"
class UserOrm:
id = sqlalchemy.Column(
sqlalchemy.Integer,
primary_key=True
)
name = sqlalchemy.Column(
sqlalchemy.String(length=128)
)
phone_id = sqlalchemy.Column(
sqlalchemy.Integer,
sqlalchemy.ForeignKey('phone.id', ondelete='cascade')
)
phone = sqlalchemy.orm.relationship(
"PhoneOrm",
uselist=False,
)
class UserModel:
id: int
name: str
phone: Optional[str]
phone = PhoneOrm('799999999999')
user = UserOrm(name='John', phone=phone)
print(UserModel.from_orm(user))
我发现了一个例外
1 validation error for UserModel
phone
str type expected (type=type_error.str)
但所有电话类都有数据类型对话
我想得到{'id':1,'name':'John','phone':'799999999'}
我该怎么做
目前没有回答
相关问题 更多 >
编程相关推荐