Flask 中根据责任人查询最高级任务的 Python 代码示例
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:
-
首先,根据责任人编号 (responsible_id) 查询满足条件的 task 列表:
responsible_tasks = SysTask.query.filter_by(responsible_id=responsible_id).all() -
然后,对于每一个满足条件的 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 著作权归作者所有。请勿转载和采集!