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'可重新定義現有的 表對象上的選項和列。
也許這兩個錯誤掛在一起?在我看來,這個類看起來好像多次被稱爲類。但我不知道可能會如何。那麼我該如何修復?
這會顯得你已經多次類似的類定義。你是正確的,不得不延長現有是你的情況的一個症狀。 –