2017-10-07 14 views
-2

flask_security와 함께 일부 역할/사용자를 추가하려하지만 SQLAlchemySessionUserDatastore으로 사용자를 만들려고하면이 문제가 발생합니다. 그래서 처음에는 가이드 이탈 단지 테스트 사용자를 만들려고하는 곳입니다 guideflask_security를 ​​사용할 때 flask_sqlalchemy 객체에 속성 추가가 없습니다.

db = SQLAlchemy(app) 
user_datastore = SQLAlchemySessionUserDatastore(db, User, Role) 
security = Security(app, user_datastore) 
user_datastore.create_user(email='test', password='passowrd') 

같은 user_datastore를 작성하여 시작합니다. db = SQLAlchemy(app)이 문제를 일으키는 것 같습니다. 여기 https://pythonhosted.org/Flask-Security/quickstart.html#id2의 예를 다음한다면

self.db.session.add(model) 
AttributeError: 'SQLAlchemy' object has no attribute 'add' 
+0

@davidism이 오류는 중요한 스택 추적의 마지막 부분입니다. 나머지는 SQLAlchemy 라이브러리입니다. db 세션에 문제가 있음을 알고있는 한 디버깅됩니다. – michael

+0

@davidism db의 MCVE 마지막 부분이 추가되었지만 직접 해결되었습니다. = D – michael

답변

0

그래서 당신은 그들이 SQLAlchemySessionUserDatastore을 사용하여 알 수 있습니다. flask_sqlalchemy으로 시작했다면이 시점에 도달하기 전에 이미 db 세션을 가지고있을 것입니다. 그래서 add 속성이없는 SQLAlchemy 오브젝트로 좁혀서 sessionmaker을 사용하려고했습니다. 이미 db 세션으로 응답했고 2 세션이 있습니다.

오래간만에 짧은 문서를 읽으려면 SQLAlchemyUserDatastore을 사용해야합니다!