如下,这个是拥有子级的菜单实体:
class SysMenu(db.Model):
“”“系统菜单”“”
tablename = f’sys_menus’
id = db.Column(db.Integer, primary_key=True)
pid = db.Column(db.Integer, db.ForeignKey(f’sys_menus.id’), index=True)
title = db.Column(db.String(20)
is_del = db.Column(db.Integer, default=0)
sort = db.Column(db.Integer, default=0)
add_time = db.Column(db.DateTime, default=datetime.now)
parent = db.relationship('SysMenu', back_populates='subs', remote_side=[id])
subs = db.relationship('SysMenu', back_populates='parent', cascade='all',
order_by="desc(SysMenu.sort)")
=======
其中subs 关联字段可以获得子菜单的列表,这个正常用没有什么问题
当SysSubMenu有个逻辑删除的字段 is_del, 当 is_del = 1 时,表示删除状态,这时 is_del = 1的记录,如何不出现在 subs 中呢,即 db.relationship 这个是否能过滤掉 is_del的字段值。
总结:如何让 db.relationship 过滤掉 is_del = 1 的数据,以实现逻辑删除的目的。