mam 3 modele stworzone z kolbą-sqlalchemy: User, rola, UserRoleKolba-SQLAlchemy - model nie ma atrybutu '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)
Jeśli próbuję (w konsoli), aby dostać się do wszystkich użytkowników poprzez User.query.all()
uzyskać AttributeError: 'NoneType' object has no attribute 'all'
i jeśli próbuję znowu mam kolejny błąd mówiąc:
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'
Czy ktoś może rzucić światło na to, co to jest dokładnie to, że jestem robić źle? Wydaje mi się, że ten kod działa już kilka miesięcy temu, ale ostatnio zaktualizowałem SQLAlchemy, Flask i Flask-SQLAlchemy i przestałem. To tylko poboczny projekt.
Jednym z powodów dodania kodu źródłowego jest to, że możemy próbować odtworzyć problem po naszej stronie. Jednak bez wiedzy o tym, czym jest ActiveRecord lub o tym, jak skonfigurowałeś "konsolę", w której próbujesz uruchomić polecenie, nie możemy tego zrobić. Czy istnieje sposób, aby utworzyć pojedynczy skrypt, który powiela problem? –