2
我想在烧瓶中定义多对多关系。 (这两个模型是User
和Role
。Lateron我想将它们用于瓶的安全性。)所以我也跟着http://flask-sqlalchemy.pocoo.org/2.1/models/#many-to-many-relationships,写烧瓶多对多关系导致“找到多个类的路径”
class User(db.Model, UserMixin):
__tablename__ = 'user'
__table_args__ = { 'useexisting': True }
id = Column(Integer, primary_key=True)
roles = relationship("RolesUsers", backref=db.backref("user", lazy='dynamic'))
class Role(db.Model):
__tablename__ = 'role'
__table_args__ = { 'useexisting': True }
id = Column(Integer, primary_key=True)
name = Column(String(80), unique=True)
class RolesUsers(db.Model):
__tablename__ = 'roles_users'
__table_args__ = { 'useexisting': True }
user_id = Column(Integer, ForeignKey('user.id'), primary_key=True)
role_id= Column(Integer, ForeignKey('role.id'), primary_key=True)
但我得到的错误发现路径
多个类在这个 声明性基础的注册表中的“RolesUsers”。请使用完全符合模块限定的路径。
我发现行
roles = relationship("RolesUsers", backref=db.backref("ma_user", lazy='dynamic'))
似乎是负责这一点。
你可能会问,为什么我用
__table_args__ = { 'useexisting': True }
那是因为别的我得到
表“用户”已是该元数据实例定义的错误。指定 'extend_existing = True'可重新定义现有的 表对象上的选项和列。
也许这两个错误挂在一起?在我看来,这个类看起来好像多次被称为类。但我不知道可能会如何。那么我该如何修复?
这会显得你已经多次类似的类定义。你是正确的,不得不延长现有是你的情况的一个症状。 –