12
我有3種型號:用戶,角色,UserRole的燒瓶SQLAlchemy的 - 模型具有燒瓶SQLAlchemy的創建沒有屬性 'foreign_keys'
user.py:
class Role(ActiveRecord, db.Model):
__tablename__ = "roles"
# Schema
id = db.Column(db.Integer, primary_key = True)
name = db.Column(db.String(24), unique = True)
description = db.Column(db.String(90))
users = db.relationship("User", secondary = "UserRole", \
backref = db.backref("roles"))
role.py:
class User(db.Model, ActiveRecord):
__tablename__ = "users"
# Schema
id = db.Column(db.Integer, primary_key = True)
email = db.Column(db.String(90), unique = True)
password = db.Column(db.String(64))
# Relations
roles = db.relationship("Role", secondary = "UserRole", \
backref = db.backref("users"))
user_role.py:
class UserRole(ActiveRecord, db.Model):
__tablename__ = "user_roles"
# Schema
user_id = db.Column(db.Integer, db.ForeignKey('users.id'), primary_key = True)
role_id = db.Column(db.Integer, db.ForeignKey('roles.id'), primary_key = True)
如果我嘗試(控制檯)通過User.query.all()
我得到AttributeError: 'NoneType' object has no attribute 'all'
得到所有用戶,如果我再試一次我得到另一個錯誤說:
sqlalchemy.exc.InvalidRequestError: One or more mappers failed to initialize - can't proceed with initialization of other mappers. Original exception was: type object 'UserRole' has no attribute 'foreign_keys'
任何人都可以揭示究竟是什麼,我是光做錯了?我想我有幾個月前運行這個代碼,但我最近更新了SQLAlchemy,Flask和Flask-SQLAlchemy,並停止了它。這只是一個側面項目。
發佈源代碼的部分原因是我們可以嘗試在我們這邊重現問題。但是,如果我們不知道ActiveRecord是什麼,或者您已經設置了您試圖運行該命令的「控制檯」,我們就無法做到這一點。有沒有一種方法可以創建一個複製問題的單個腳本? –