class SysTask(db.Model): tablename = 'sys_task' table_args = {'useexisting': True} id = db.Column(db.Integer, autoincrement=True, primary_key=True, unique=True, info='编号') responsible_id = db.Column(db.Integer, db.ForeignKey('sys_user.user_id'), info='责任人编号') parent_id = db.Column(db.Integer, db.ForeignKey('sys_task.id')) children = db.relationship('SysTask', cascade='all', backref=db.backref('parent', remote_side=[id]))

在 Flask 中,可以使用以下方法来查询满足条件的最高级 task:

  1. 首先,根据责任人编号 (responsible_id) 查询满足条件的 task 列表:

    responsible_tasks = SysTask.query.filter_by(responsible_id=responsible_id).all()
    
  2. 然后,对于每一个满足条件的 task,使用递归的方式找到最高级的 task:

    def find_highest_level_task(task):
        if task.parent is None:
            return task
        else:
            return find_highest_level_task(task.parent)
    
    highest_level_tasks = [find_highest_level_task(task) for task in responsible_tasks]
    

通过以上步骤,你可以得到满足条件的最高级 task 列表 (highest_level_tasks),其中每个 task 都是满足条件的责任人对应的最高级 task。


原文地址: https://www.cveoy.top/t/topic/pgrL 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录