0
なぜ私にこのようなエラーが出ますか? request.sessionなしで正常に動作しますが、request.sessionの更新中にこのエラーが生成されます。なぜOdooがupdate request.sessionを更新している間にPicklingErrorを返すのですか
@api.multi
def graph_view(self):
vals = {}
if self.x_axis and self.y_axis and self.range_period and self.range_selection:
vals.update({'id': self.id,
'x_axis': self.x_axis,
'y_axis': self.y_axis,
'range_period': self.range_period,
'range_selection': self,
'graph_type': 'pie',
'model': self
else:
raise Warning('Please check the graph')
request.session.update(vals)
res = self.env['ir.model.data'].get_object_reference('pan_pos', 'graph_form_view')
return {
'view_type': 'form',
'view_mode': 'form',
'view_id': res[1],
'res_model': 'report.sales',
'type': 'ir.actions.act_window',
'target': 'current'
}
エラーログ:
2016-12-10 09:16:09,960 31071 ERROR pan_28_11 werkzeug: Error on request:
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/werkzeug/serving.py", line 180, in run_wsgi
execute(self.server.app)
File "/usr/lib/python2.7/dist-packages/werkzeug/serving.py", line 168, in execute
application_iter = app(environ, start_response)
File "/home/acespritech/ERP/odoo_8/openerp/service/server.py", line 291, in app
return self.app(e, s)
File "/home/acespritech/ERP/odoo_8/openerp/service/wsgi_server.py", line 216, in application
return application_unproxied(environ, start_response)
File "/home/acespritech/ERP/odoo_8/openerp/service/wsgi_server.py", line 202, in application_unproxied
result = handler(environ, start_response)
File "/home/acespritech/ERP/odoo_8/openerp/http.py", line 1292, in __call__
return self.dispatch(environ, start_response)
File "/home/acespritech/ERP/odoo_8/openerp/http.py", line 1266, in __call__
return self.app(environ, start_wrapped)
File "/usr/lib/python2.7/dist-packages/werkzeug/wsgi.py", line 591, in __call__
return self.app(environ, start_response)
File "/home/acespritech/ERP/odoo_8/openerp/http.py", line 1266, in __call__
return self.app(environ, start_wrapped)
File "/usr/lib/python2.7/dist-packages/werkzeug/wsgi.py", line 591, in __call__
return self.app(environ, start_response)
File "/home/acespritech/ERP/odoo_8/openerp/http.py", line 1444, in dispatch
response = self.get_response(httprequest, result, explicit_session)
File "/home/acespritech/ERP/odoo_8/openerp/http.py", line 1389, in get_response
self.session_store.save(httprequest.session)
File "/usr/lib/python2.7/dist-packages/werkzeug/contrib/sessions.py", line 244, in save
dump(dict(session), f, HIGHEST_PROTOCOL)
File "/usr/lib/python2.7/pickle.py", line 1376, in dump
Pickler(file, protocol).dump(obj)
File "/usr/lib/python2.7/pickle.py", line 224, in dump
self.save(obj)
File "/usr/lib/python2.7/pickle.py", line 286, in save
f(self, obj) # Call unbound method with explicit self
File "/usr/lib/python2.7/pickle.py", line 655, in save_dict
self._batch_setitems(obj.iteritems())
File "/usr/lib/python2.7/pickle.py", line 687, in _batch_setitems
save(v)
File "/usr/lib/python2.7/pickle.py", line 331, in save
self.save_reduce(obj=obj, *rv)
File "/usr/lib/python2.7/pickle.py", line 396, in save_reduce
save(cls)
File "/usr/lib/python2.7/pickle.py", line 300, in save
self.save_global(obj)
File "/usr/lib/python2.7/pickle.py", line 754, in save_global
(obj, module, name))
PicklingError: Can't pickle <class 'openerp.api.sales'>: it's not found as openerp.api.sales
私が解決するのに役立ちます。おかげさまで
コードに構文エラーがあります。私はあなたの質問を編集しました。あなたが意図したものであることを願っていますか? – danidee
あなたは正確に何をしようとしていますか?問題は、 'werkzeug'がunpicklableオブジェクト(この場合は' openerp.api.sales'のインスタンス)をpickleしようとしていることです。 Pythonは、クラスをpickleすることはできません、これを読むhttps://docs.python.org/2/library/pickle.html#what-can-be-pickled-and-unpickledそれは助けのはずです – danidee
ありがとう@danidee、私エラーが発生しました。私が準備している辞書には、このエラーを生成しているオブジェクトタイプの値が含まれています。文字列に変換しました。 –