У меня есть две таблицы БД «пользователь» и «парк». Я хочу выполнить запрос на соединение (выберите * от пользователя, парк, где user.userid = 'ab c')
Я имею в виду ответ - { ссылка } И в нем говорится, что мне не нужно выполнять соединение, из таблицы Fleet я получаю сведения о пользователях, но я не могу получить доступ к сведениям о пользователе из объекта флота
class User(base):
__tablename__ = 'userinfo'
userid = Column(Integer, primary_key = True, autoincrement=True)
useremail = Column(String,unique = True)
class Fleet(base):
__tablename__ = 'fleet'
fleetid = Column(Integer, primary_key = True, autoincrement=True)
fleetname = Column(String, unique = True)
createdby = Column(Integer, ForeignKey(User.userid), nullable=False)
user = relationship("User")
Подключение к базе данных и сеанс
engine = sqlalchemy.create_engine(DATABASE_URI)
base = automap_base()
base.prepare(engine, reflect=True)
session = Session(engine)
User = base.classes.userinfo
Fleet =base.classes.fleet
details = session.query(Fleet).first()
print(fleet_schema.dump(details))
Схема Marshmallow
class UserSchema(Schema):
userid = fields.Int()
useremail = fields.Str()
class FleetSchema(Schema):
fleetid = fields.Int()
fleetname = fields.Str()
user = fields.Nested(UserSchema)
Я получаю следующий вывод: {'fleetid': 1, 'fleetname': ' ab c '}
Ожидаемый результат
{
"fleetid":1,
"fleetname" : "xyz",
"user" : {
"userid" : 1,
"username" : "abc@gmail.com"
}
}