#sqlalchemy #fastapi #pydantic
Вопрос:
Мне нужно получить одно значение из модели отношений «Много к одному pydantic
BaseModel
«. Как я могу это сделать?
Класс моих детей
class Picnic(Base):
__tablename__ = 'picnic'
id = Column(Integer, primary_key=True, autoincrement=True)
city_id = Column(Integer, ForeignKey('city.id'), nullable=False)
city = relationship('City', backref='picnics')
class City(Base):
__tablename__ = 'city'
id = Column(Integer, primary_key=True, autoincrement=True)
name = Column(String, unique=True, nullable=False, index=True)
Мне нужно получить значение названия города :
class Picnics(BaseModel):
id: int
# city: str[CityBaseInDB.name] not working
# city: str = Field(source='city.name') not working
# city_name: str not working
class Config:
orm_mode: bool = True
Комментарии:
1. Валидатор может изменить возвращаемое значение из заданного значения; вы рассматривали возможность их использования? pydantic-docs.helpmanual.io/usage/validators
2. Спасибо за предложение, это действительно работает, но в схеме swagger также отображается объект города: «город»: {«имя»: «строка»}
3. Каково ваше определение этой области? Это должно быть
str
поле, а затем использовать валидатор для преобразованияCity
объекта.