t_m_r = db.Table('t_menu_role',
db.Column('rid', db.Integer, db.ForeignKey('t_role.id')),
db.Column('mid', db.Integer, db.ForeignKey('t_menu.id'))
)
class Menu(db.Model):
__tablename__ = 't_menu'
id = db.Column(db.Integer, unique=True, primary_key=True)
name = db.Column(db.String(32), unique=True, nullable=False)
level = db.Column(db.Integer)
path = db.Column(db.String(32))
pid = db.Column(db.Integer, db.ForeignKey('t_menu.id'))
children = db.relationship('Menu')
roles = db.relationship('Role', secondary=t_m_r)
def to_dict(self):
return {
'id': self.id,
'name': self.name,
'level': self.level,
'path': self.path,
'pid': self.pid
}
def get_child_list(self):
obj_child = self.children
data = []
for o in obj_child:
data.append(o.to_dict())
return data
class Role(db.Model):
__tablename__ = 't_role'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(32), unique=True, nullable=False)
describe = db.Column(db.String(64))
# 与用户的关联
users = db.relationship('User', backref='role')
menus = db.relationship('Menu', secondary=t_m_r)
def to_dict(self):
return {
'id': self.id,
'name': self.name,
'describe': self.describe,
'menu': self.get_menu_list()
}
def get_menu_list(self):
menu_list = []
for m in self.menus:
if m.level == 1:
m_dict = m.to_dict()
m_dict['children'] = m.get_child_list()
menu_list.append(m_dict)
return menu_list

老师,这边关联数据库报了这个警告,每次查询role表跟menu表时都会