0

我想要实现这样一个功能,即返回用户关注的所有标签下的所有问题,并按照问题时间顺序排序。

标签(Tag)与问题(Question)是多对多的关系,用户(User)与问题(Question)是一对多的关系,用户与标签是多对多关系

我之前直接用的db.Table实现多对多,现在按照狗书将关联表改成了一个FollowTag模型,联结查询一直不怎么理解,请问该如何实现这个功能?感谢!🙏

class FollowTag(db.Model):
    tag_id = db.Column(db.Integer, db.ForeignKey('tag.id'),
                       primary_key=True)
    question_id = db.Column(db.Integer, db.ForeignKey('question.id'),
                            primary_key=True)
    create_time = db.Column(db.DateTime, default=datetime.utcnow)
静谷 6
2月10日提问
2 个回答
0

已采纳

已解决
就用db.Table就好了

query = db.session.query(Question)
query = query.filter(Question.tags.any(Tag.users.any(User.id == self.id)))

详见stack overflow

0

这是我的一个项目,希望对你有所帮助:https://github.com/eastossifr...

该答案已被忽略,原因:无意义的内容 - 赞、顶、同问等毫无意义的内容

撰写答案

推广链接