猿问

如何在 Flask SQLAlchemy 中递归获取孩子?

我有模型:


class User(db.Model, UserMixin):

    id = db.Column(db.Integer, primary_key = True)

    login = db.Column(db.String(20), unique = True, nullable = False)

    username = db.Column(db.String(200), nullable = True)

    password = db.Column(db.String(60), nullable = False)

    user_level = db.Column(db.Integer, nullable = False)

    parent_id = db.Column(db.Integer, db.ForeignKey('user.id'))


    terminals = db.relationship('Terminal', backref='owner', lazy = True)


    controled_users = db.relationship('User', backref=db.backref('parent', remote_side=[id]), lazy = True)


    def get_children_list(self) -> []:

        beginning_getter = db.session.query(User).\

                filter(User.id == id).cte(name='children_for', recursive=True)

        with_recursive = beginning_getter.union_all(

                db.session.query(User).filter(User.parent_id == beginning_getter.c.id)

            )

        return db.session.query(with_recursive).all()


    def __repr__(self):

        return "User('{0}')".format(self.username)

所以每个人都User可以有孩子用户的什么可以有自己的孩子。

我试图获取所有孩子的列表:


current_user.get_children_list()


在这里找不到什么问题?


皈依舞
浏览 144回答 1
1回答

慕无忌1623718

你可能应该User.id == id改变User.id == self.id
随时随地看视频慕课网APP

相关分类

Python
我要回答