Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Flask Security中的重置密码功能不起作用_Python_Flask_Flask Sqlalchemy_Flask Security - Fatal编程技术网

Python Flask Security中的重置密码功能不起作用

Python Flask Security中的重置密码功能不起作用,python,flask,flask-sqlalchemy,flask-security,Python,Flask,Flask Sqlalchemy,Flask Security,我正在尝试在Flask安全模块中使用默认的忘记密码功能,没有任何自定义设置。在忘记密码视图中,我输入我的电子邮件地址,单击恢复密码并成功接收重置密码电子邮件。当我单击电子邮件中的链接时,我会按预期转到重置密码视图。当我尝试输入新密码并提交时,我得到以下堆栈跟踪: Traceback (most recent call last): File "/opt/virtualenvs/project/local/lib/python2.7/site-packages/flask/app.py", l

我正在尝试在Flask安全模块中使用默认的忘记密码功能,没有任何自定义设置。在忘记密码视图中,我输入我的电子邮件地址,单击恢复密码并成功接收重置密码电子邮件。当我单击电子邮件中的链接时,我会按预期转到重置密码视图。当我尝试输入新密码并提交时,我得到以下堆栈跟踪:

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')
回溯(最近一次呼叫最后一次):
文件“/opt/virtualenvs/project/local/lib/python2.7/site packages/flask/app.py”,第1701行,在调用中__
返回self.wsgi_应用程序(环境,启动响应)
wsgi_应用程序中的文件“/opt/virtualenvs/project/local/lib/python2.7/site packages/flask/app.py”,第1689行
响应=self.make\u响应(self.handle\u异常(e))
文件“/opt/virtualenvs/project/local/lib/python2.7/site packages/flask/app.py”,第1687行,在wsgi_应用程序中
response=self.full\u dispatch\u request()
文件“/opt/virtualenvs/project/local/lib/python2.7/site packages/flask/app.py”,第1360行,完整发送请求
rv=自身处理用户异常(e)
文件“/opt/virtualenvs/project/local/lib/python2.7/site packages/flask/app.py”,第1358行,完整发送请求
rv=自我分派请求()
文件“/opt/virtualenvs/project/local/lib/python2.7/site packages/flask/app.py”,第1344行,在调度请求中
返回self.view_函数[rule.endpoint](**req.view_参数)
文件“/opt/virtualenvs/project/local/lib/python2.7/site packages/flask_security/decorators.py”,第171行,在包装器中
返回f(*args,**kwargs)
文件“/opt/virtualenvs/project/local/lib/python2.7/site packages/flask\u security/views.py”,第264行,在重置密码中
更新密码(用户、表单、密码、数据)
更新密码中的文件“/opt/virtualenvs/project/local/lib/python2.7/site packages/flask\u security/recoverable.py”,第78行
_datastore.put(用户)
文件“/opt/virtualenvs/project/local/lib/python2.7/site packages/flask_security/datastore.py”,第31行,输入
self.db.session.add(模型)
文件“/opt/virtualenvs/project/local/lib/python2.7/site packages/sqlalchemy/orm/scoping.py”,do中第149行
返回getattr(self.registry(),name)(*args,**kwargs)
文件“/opt/virtualenvs/project/local/lib/python2.7/site packages/sqlalchemy/orm/session.py”,第1371行,添加
自我保存或更新状态(状态)
文件“/opt/virtualenvs/project/local/lib/python2.7/site packages/sqlalchemy/orm/session.py”,第1383行,处于保存或更新状态
self.\u save\u或\u update\u impl(状态)
文件“/opt/virtualenvs/project/local/lib/python2.7/site packages/sqlalchemy/orm/session.py”,第1639行,保存或更新
自我更新执行(状态)
文件“/opt/virtualenvs/project/local/lib/python2.7/site-packages/sqlalchemy/orm/session.py”,第1633行,在“更新”impl中
自我连接(状态)
文件“/opt/virtualenvs/project/local/lib/python2.7/site packages/sqlalchemy/orm/session.py”,第1721行,附件
state.session\u id,self.hash\u key)
sqlalchemy.exc.InvalidRequestError:对象“”已附加到会话“33”(这是“34”)
有人能帮忙吗

我使用的是:Flask==0.9,Flask-SQLAlchemy==0.16,Flask-Security==1.5.4