我有以下模型类:
class ArticleOptionSetModel(db.Model):
__tablename__ = 'sdt_articles_options_sets'
id = db.Column(db.Integer, db.Sequence("sdq_articles_options_sets"), primary_key=True)
article_id = db.Column(db.Integer, db.ForeignKey('sdt_articles.id'), nullable=False)
option_set_id = db.Column(db.Integer, db.ForeignKey('sdt_options_sets.id'), nullable=False)
order_num = db.Column(db.Integer, nullable=False)
def have_options(self, article_id) -> int:
result = db.session.query(func.count(ArticleOptionSetModel.id))\
.join(OptionSetModel, ArticleOptionSetModel.option_set_id == OptionSetModel.id)\
.filter(ArticleOptionSetModel.article_id == self.article_id)\
.filter(OptionSetModel.option_type == OT_OPTION).one()
if result[0] > 0:
return 1
else:
return 0
如果我尝试在联接中使用此模型,并提取字段:
result = db.session.query(ArticleModel.id,
ArticleOptionSetModel.have_options)\
.join(ArticleOptionSetModel, ArticleModel.id == ArticleOptionSetModel.article_id)
return result.all()
我得到这个错误:
sqlalchemy.exc.InvalidRequestError:应为SQL表达式、列或映射实体-获得“1”
其中1是从我的方法返回的值
从方法返回的0或1应视为调用者查询中的列结果。 这怎么可能呢
目前没有回答
相关问题 更多 >
编程相关推荐