如何解决Flask-Sqlalchemy嵌套表不起作用
简而言之,我想显示其中嵌套了Hobby表的User表
我的模特:
HobbyUser = db.Table('HobbyUser',db.Column('hobbyId',db.String,db.ForeignKey('Hobby.id')),db.Column('userId',db.ForeignKey('User.id')))
class User(db.Model):
id = db.Column(db.Integer,primary_key=True)
token = db.Column(db.String,nullable=False)
name = db.Column(db.String,nullable=False)
age = db.Column(db.Integer,nullable=False)
gender = db.Column(db.Integer,nullable=False)
height = db.Column(db.Float,nullable=False)
address = db.Column(db.String,nullable=False)
latitude = db.Column(db.Numeric,nullable=False)
longitude = db.Column(db.Numeric,nullable=False)
hobbies = db.Column(db.String,db.ForeignKey('HobbyUser.hobbyId'),nullable=False)
def __init__(self,token,name,age,gender,height,address,latitude,longitude,hobbyId):
self.token = token
self.name = name
self.age = age
self.gender = gender
self.height = height
self.address = address
self.latitude = latitude
self.longitude = longitude
self.hobbyId = hobbyId
class Hobby(db.Model):
id = db.Column(db.String,primary_key=True)
hobby = db.Column(db.String,id,hobby):
self.id = id
self.hobby = hobby
我的模式:
class UserSchema(ma.sqlAlchemyAutoSchema):
id = fields.Integer(dump_only=True)
token = fields.String(required=True)
name = fields.String(required=True,validate=validate.Length(1))
age = fields.Integer(required=True)
gender = fields.Integer(required=True)
height = fields.Float(required=True)
address = fields.String(required=True)
longitude = fields.Decimal(required=True)
latitude = fields.Decimal(required=True)
hobbyId = fields.String()
hobbies = fields.nested('HobbySchema',many=True,only=('id','hobby',))
class Meta:
model = User
sql_session = db.session
fields = ('token','name','age','gender','height','weight','address','longitude','latitude','hobbies')
class HobbySchema(ma.sqlAlchemyAutoSchema):
id = fields.Integer(dump_only=True)
hobby = fields.String(required=True,many=True)
class Meta:
model = Hobby
sql_session = db.session
fields = ('id',)
{
"address": "65A Tran Binh Trong Street","age": 1,"gender": 1,"height": 1.75,"hobbies": null,"latitude": 11,"longitude": 11,"name": "Tun1","token": "2pWQNFvnpz"
}
我如何得到这样的东西:
{
"address": "65A Tran Binh Trong Street","hobbies": [{
"id":"1","hobby":"reading"
}],"token": "2pWQNFvnpz"
}
我尝试并遵循了许多以前类似的已解决问题,但仍然无法解决。任何帮助将不胜感激
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。