В основном то, что я хочу сделать, это присоединиться к 2 таблицам «пользователи» и «компания» и получить пользователей с соответствующими данными о компании.
это модель пользователя:
class User(db.Model):
__tablename__ = 'user'
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
firstname = db.Column(db.String(10), nullable=False)
lastname = db.Column(db.String(25), nullable=False)
username = db.Column(db.String(250), nullable=False)
email = db.Column(db.String(100), nullable=False)
password = db.Column(db.String(250), nullable=False)
isPasswordReset = db.Column(db.Boolean, nullable=False)
companyId = db.Column(db.Integer, db.ForeignKey(
'company.id'), nullable=True)
а это схема
class UserSchema(ma.Schema):
id = fields.Integer()
firstname = fields.String(required=True)
lastname = fields.String(required=True)
username = fields.String(required=True)
email = fields.String(required=True)
password = fields.String(required=True)
isPasswordReset = fields.Boolean(required=True)
companyId = fields.Integer()
company_name = fields.Nested(CompanySchema)
Это модель компании:
class Company(db.Model):
__tablename__ = 'company'
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
companyName = db.Column(db.String(100), nullable=True)
companyCode = db.Column(db.String(20), nullable=True)
companyTheme = db.Column(db.String(300), nullable=True)
это схема компании:
class CompanySchema(ma.Schema):
id = fields.Integer()
companyName = fields.String(required=True)
companyCode = fields.String(required=True)
companyTheme = fields.String(required=True)
и это resource-user.py :
users_schema = UserSchema(many=True)
user_schema = UserSchema()
class UsersResource(Resource):
def get(self):
users = db.session.query(User.firstname, Company.companyName).join(
Company, User.companyId == Company.id).all()
if users:
results = users_schema.dump(users).data
return {'status': 'success', 'message': json.dumps(results, default=str)}, 200
и это вывод, который я получаю:
{ "статус": "успех", "сообщение": "[{\"имя\": \"abc\"}, {\"имя\": \"xyz\"}]" }
отображаются только таблицы пользователей, а не из таблицы компании. Я часами следил за множеством руководств и прочим. но все еще не мог это исправить. Я новичок в фляге и sqlalchemy. пожалуйста, кто-нибудь знает, как это исправить?