【发布时间】:2018-07-01 14:14:24
【问题描述】:
我有一个使用 sql-alchemy 包的 mysql 数据库运行的网站,该包突然损坏。我做了一些研究,发现预期的问题是最新的 sql-alchemy 更新给 flask-admin 带来的价值比预期的多一个
"cls, key = identity_key(instance=obj)"
Source
建议的解决方法是编辑文件以接受第三项,但我无法使用我对环境的权限执行此操作。
另一个答案链接到 github 上的 repo,但我不知道这对我有什么帮助。我对此很陌生,我不知道我是否应该克隆 repo,或者如果我这样做了,该怎么做。
感谢任何帮助!
这是错误转储
2018-01-22 20:01:59,593:[2018-01-22 20:01:59,592] 应用程序中的错误: /reservation/add [GET] 的例外情况
2018-01-22 20:01:59,594: 回溯(最近一次通话最后):
2018-01-22 20:01:59,594:
文件“fakepath/flask/app.py”,第 1982 行,在 wsgi_app
2018-01-22 20:01:59,594:响应 = self.full_dispatch_request()2018-01-22 20:01:59,594:文件“fakepath/flask/app.py”,第 1614 行, 在 full_dispatch_request
2018-01-22 20:01:59,594: rv = self.handle_user_exception(e)
2018-01-22 20:01:59,595:文件 “fakepath/flask/app.py”,第 1517 行,在 handle_user_exception2018-01-22 20:01:59,595:reraise(exc_type,exc_value,tb)2018-01-22 20:01:59,595:文件“fakepath/flask/ _compat.py",行 33,在重新筹集
2018-01-22 20:01:59,595:提高价值2018-01-22 20:01:59,595:文件“fakepath/flask/app.py”,第 1612 行, 在 full_dispatch_request
2018-01-22 20:01:59,595: rv = self.dispatch_request()
2018-01-22 20:01:59,596:文件 “fakepath/flask/app.py”,第 1598 行,在 dispatch_request2018-01-22 20:01:59,596 中:返回 self.view_functionsrule.endpoint
2018-01-22 20:01:59,596:文件“fakepath/flask_login/utils.py”,第 261 行,在 装饰视图
2018-01-22 20:01:59,596: 返回 func(*args, **kwargs)
2018-01-22 20:01:59,597:文件“/home/apoalphagammawebmaster/inventory/app/auth/views.py”,第 248 行, 在 add_reservation
2018-01-22 20:01:59,597: form=form, title='添加预订')
2018-01-22 20:01:59,597: 文件 “fakepath/flask/template.py”,第 134 行,在 render_template2018-01-22 20:01:59,597:上下文,ctx.app)
2018-01-22 20:01:59,597:文件“fakepath/flask/template.py”,第 116 行,在 _render
2018-01-22 20:01:59,597:rv = template.render(context)
2018-01-22 20:01:59,598:文件 “fakepath/jinja2/asyncsupport.py”,第 76 行,在渲染中
2018-01-22 20:01:59,598: 返回 original_render(self, *args, **kwargs)2018-01-22 20:01:59,598: 文件“fakepath/jinja2/environment.py”, 第 1008 行,在渲染中
2018-01-22 20:01:59,598:返回 self.environment.handle_exception(exc_info, True)
2018-01-22 20:01:59,598:文件“fakepath/jinja2/environment.py”,第 780 行,在 句柄异常
2018-01-22 20:01:59,599: reraise(exc_type, exc_value,待定)
2018-01-22 20:01:59,599:文件 “fakepath/jinja2/_compat.py”,第 37 行,重新筹集
2018-01-22 20:01:59,599:提高价值。with_traceback(tb)
2018-01-22 20:01:59,599:文件 "/home/apoalphagammawebmaster/inventory/app/templates/auth/reservations/reservation.html", 第 2 行,在顶级模板代码中
2018-01-22 20:01:59,599:
{% 扩展“base.html”%}
2018-01-22 20:01:59,599:文件 “/home/apoalphagammawebmaster/inventory/app/templates/base.html”,行 48、在顶层模板代码中
2018-01-22 20:01:59,600: {% 块体 %}
2018-01-22 20:01:59,600:文件 "/home/apoalphagammawebmaster/inventory/app/templates/auth/reservations/reservation.html", 第 27 行,在“正文”块中
2018-01-22 20:01:59,600: {{ wtf.quick_form(form) }}
2018-01-22 20:01:59,600:文件 “fakepath/jinja2/runtime.py”,第 579 行,在 _invoke
2018-01-22 20:01:59,600: rv = self._func(*arguments)
2018-01-22 20:01:59,601:文件 “fakepath/flask_bootstrap/templates/bootstrap/wtf.html”,第 205 行,在 模板
2018-01-22 20:01:59,601: {{ form_field(field,2018-01-22 20:01:59,601: 文件“fakepath/jinja2/runtime.py”,行 579,在 _invoke
2018-01-22 20:01:59,601: rv = self._func(*arguments)
2018-01-22 20:01:59,601:文件 “fakepath/flask_bootstrap/templates/bootstrap/wtf.html”,第 123 行,在 模板
2018-01-22 20:01:59,601:
{{field(class="form-control", **kwargs)|safe}}
2018-01-22 20:01:59,601:文件“fakepath/wtforms/fields/core.py”,第 153 行,在 调用
2018-01-22 20:01:59,601:返回 self.meta.render_field(self, kwargs)
2018-01-22 20:01:59,602:
文件“fakepath/wtforms/meta.py”,第 56 行,在 render_field2018-01-22 20:01:59,602 中:return field.widget(field, **render_kw)
2018-01-22 20:01:59,602:文件“fakepath/wtforms/widgets/core.py”,第 287 行,在 call2018-01-22 20 中: 01:59,602:对于 val、标签,在 field.iter_choices():
2018-01-22 20:01:59,602:文件 “fakepath/wtforms/ext/sqlalchemy/fields.py”,第 107 行,在 iter_choices
2018-01-22 20:01:59,602:对于 pk,obj in self._get_object_list():
2018-01-22 20:01:59,602:文件 “fakepath/wtforms/ext/sqlalchemy/fields.py”,第 100 行,在 _get_object_list
2018-01-22 20:01:59,602: self._object_list = list((text_type(get_pk(obj)), obj) 用于查询中的 obj)
2018-01-22 20:01:59,603:文件“fakepath/wtforms/ext/sqlalchemy/fields.py”,行 100,在
2018-01-22 20:01:59,603: self._object_list = list((text_type(get_pk(obj)), obj) for obj in query)
2018-01-22 20:01:59,603:文件“fakepath/wtforms/ext/sqlalchemy/fields.py”,行 189, 在 get_pk_from_identity
2018-01-22 20:01:59,603: cls, key = identity_key(instance=obj)
2018-01-22 20:01:59,603: ValueError:要解压的值太多(预期为 2)
【问题讨论】:
标签: python mysql sqlalchemy flask-sqlalchemy sqlalchemy-migrate