繁体   English   中英

将过滤器添加到flask + sqlalchemy关系列

[英]Add filter to flask+sqlalchemy relationship column

我有以下型号:

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    archived = db.Column(db.Boolean, default=False)


class Post(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    content = db.Column(db.UnicodeText, nullable=True)

    user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False, index=True)
    user = db.relationship(
        'User',
        backref='posts',
        foreign_keys='Post.user_id',
    )

如何在user Post添加过滤器,以过滤出已存档的用户? 我想避免将关系类型更改为lazy='dynamic' ,而是在这里的模型中进行操作

您可以在发布下设置属性:

@property
def unfiltered_posts():
    return SESSION.query(cls).Join(User).filter(User.archived==False).all()
  1. 通过User.query.filter(/**condition/)获取用户
  2. 然后Post.query.with_parent(user).filter(/**condition/)

喜欢:

user = User.query.filter_by(id='')
posts = Post.query.with_parent(user).filter(Post.id > 3).all()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM