9

私はPythonにかなり慣れていません。次の 2 つの SQLAlchemy モデルがあります。

class listing(db.Model):
 id = db.Integer(primary_key=True)
 title = db.String()
 location_id = db.Column(db.Integer, db.ForeignKey('location.id'))
 location = db.relationship('Location', lazy='joined')

class location(db.Model):
 id = db.Integer(primary_key=True)
 title = db.String()

私はそれらのために2つのマシュマロスキーマクラスを持っています:

class ListingSchema(Schema):
 id = fields.Int()
 title = fields.Str()
 location_id = fields.Int()

class LocationSchema(Schema):
 id = fields.Int()
 title = fields.Str()

次のようなネストされたスキーマ クラスを作成しました。

class NestedSchema(Schema):
 listing = fields.Nested(ListingSchema)
 location fields.Nested(LocationSchema)

私は次のような結合クエリを実行しています:

listing,location = db.session.query(Listing,Location)\
                            .join(Location, and_(Listing.location_id == Location.id))\
                            .filter(Listing.id == listing_id).first()

チェックしたオブジェクトにデータが読み込まれます。このスキーマをどのように解析できますか? 私が試してみました

result,errors = nested_listing_Schema(listing,location)

これにより、「Listing object is not iteratable.」というエラーが発生します。

4

1 に答える 1