[目前,我在Postgres中有两个表分别为Category和Comment,我正在使用Python SQLAlchemy来获取数据并公开API。但是我在加入表格时遇到了问题,请您帮帮我
关系:每个类别可以有多个评论
class Comment(db.Model):
__tablename__ = 'comments'
id = db.Column(db.Integer, primary_key=True)
comment_desc = db.Column(db.String(250), nullable=False)
creation_date = db.Column(db.TIMESTAMP, server_default=db.func.current_timestamp(), nullable=False)
category_id = db.Column(db.Integer, db.ForeignKey('categories.id', ondelete='CASCADE'), nullable=False)
category = db.relationship('Category', backref=db.backref('comments', lazy='dynamic' ))
class Category(db.Model):
__tablename__ = 'categories'
id = db.Column(db.Integer, primary_key=True)
category_name = db.Column(db.String(150), unique=True, nullable=False)
class CategorySchema(ma.Schema):
id = fields.Integer()
category_name = fields.String(required=True)
class CommentSchema(ma.Schema):
id = fields.Integer(dump_only=True)
category_id = fields.Integer(required=True)
comment_desc = fields.String(required=True, validate=validate.Length(1))
creation_date = fields.DateTime()
现在我想以REST API的形式获取详细信息
API中的category_id,category_name,comment_desc,我尝试如下进行操作但是它没有获取组合的详细信息
category_comment_details = Comment.query.all(category_id,category_name,comment_desc).join(Category,Category.id= Comment.category_id)
我认为您可以按照以下步骤来实现,对于SQLAlchemy版本1.3.12
c = Comment.query.filter(Category.id==1).all() # this will return list of objects which matches the filter condition
for item in c:
item.id # comments id
item.comment_desc
item.category.category_name