SQLAlchemy postgres отношение не работает - Python - PullRequest
0 голосов
/ 19 июня 2020

У меня есть две таблицы БД «пользователь» и «парк». Я хочу выполнить запрос на соединение (выберите * от пользователя, парк, где 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"
              }
}
...