Ich habe 3 Modelle erstellt mit Flask-sqlalchemy: Benutzer, Rollen, UserroleFlask-SQLAlchemy - Modell hat kein Attribut '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)
Wenn ich (in der Konsole) versuchen alle Benutzer erhalten über User.query.all()
ich AttributeError: 'NoneType' object has no attribute 'all'
bekommen und wenn ich versuche, wieder erhalte ich einen anderen Fehler zu sagen:
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'
Kann jemand ein Licht auf, was es genau ist, dass ich bin falsch machen? Ich denke, ich hatte diesen Code vor ein paar Monaten in Ordnung, aber ich aktualisierte SQLAlchemy, Flask und Flask-SQLAlchemy vor kurzem und es hörte auf. Es ist nur ein Nebenprojekt.
Ein Teil des Grundes, Quellcode zu veröffentlichen, ist so, dass wir versuchen können, das Problem auf unserer Seite zu reproduzieren. Ohne dass wir jedoch wissen, was ActiveRecord ist oder wie Sie die "Konsole" eingerichtet haben, in der Sie versuchen, den Befehl auszuführen, können wir das nicht tun. Gibt es eine Möglichkeit, ein einzelnes Skript zu erstellen, das das Problem dupliziert? –