1

我正在尝试在 Flask-Security 模块中使用默认的忘记密码功能,而无需自定义。在忘记密码视图中,我输入我的电子邮件地址,单击恢复密码并成功收到重置密码电子邮件。当我单击电子邮件中的链接时,我会按预期转到“重置密码”视图。当我尝试输入新密码并提交时,我得到了这个堆栈跟踪:

Traceback (most recent call last):
  File "/opt/virtualenvs/project/local/lib/python2.7/site-packages/flask/app.py", line 1701, in __call__
    return self.wsgi_app(environ, start_response)
  File "/opt/virtualenvs/project/local/lib/python2.7/site-packages/flask/app.py", line 1689, in wsgi_app
    response = self.make_response(self.handle_exception(e))
  File "/opt/virtualenvs/project/local/lib/python2.7/site-packages/flask/app.py", line 1687, in wsgi_app
    response = self.full_dispatch_request()
  File "/opt/virtualenvs/project/local/lib/python2.7/site-packages/flask/app.py", line 1360, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/opt/virtualenvs/project/local/lib/python2.7/site-packages/flask/app.py", line 1358, in full_dispatch_request
    rv = self.dispatch_request()
  File "/opt/virtualenvs/project/local/lib/python2.7/site-packages/flask/app.py", line 1344, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/opt/virtualenvs/project/local/lib/python2.7/site-packages/flask_security/decorators.py", line 171, in wrapper
    return f(*args, **kwargs)
  File "/opt/virtualenvs/project/local/lib/python2.7/site-packages/flask_security/views.py", line 264, in reset_password
    update_password(user, form.password.data)
  File "/opt/virtualenvs/project/local/lib/python2.7/site-packages/flask_security/recoverable.py", line 78, in update_password
    _datastore.put(user)
  File "/opt/virtualenvs/project/local/lib/python2.7/site-packages/flask_security/datastore.py", line 31, in put
    self.db.session.add(model)
  File "/opt/virtualenvs/project/local/lib/python2.7/site-packages/sqlalchemy/orm/scoping.py", line 149, in do
    return getattr(self.registry(), name)(*args, **kwargs)
  File "/opt/virtualenvs/project/local/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line 1371, in add
    self._save_or_update_state(state)
  File "/opt/virtualenvs/project/local/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line 1383, in _save_or_update_state
    self._save_or_update_impl(state)
  File "/opt/virtualenvs/project/local/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line 1639, in _save_or_update_impl
    self._update_impl(state)
  File "/opt/virtualenvs/project/local/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line 1633, in _update_impl
    self._attach(state)
  File "/opt/virtualenvs/project/local/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line 1721, in _attach
    state.session_id, self.hash_key))
sqlalchemy.exc.InvalidRequestError: Object '<User at 0xa362a4c>' is already attached to session '33' (this is '34')

有人能帮忙吗?

我正在使用:Flask==0.9,Flask-SQLAlchemy==0.16,Flask-Security==1.5.4

4

0 回答 0