【发布时间】:2015-07-10 13:26:52
【问题描述】:
我是 OpenERP 和 Python 的新手,我正在尝试在创建表单中设置默认日期,该日期必须是用户使用创建表单后的 28 天。
我尝试的最后一件事是:
from datetime import datetime
from datetime import date
from datetime import timedelta
from dateutil.relativedelta import relativedelta
from openerp.osv import fields, osv
class sale_order_dates(osv.osv):
_inherit = 'sale.order'
_columns = {
'requested_date': fields.date('Requested Date', help="Date requested by the customer for the sale."),
}
_defaults = {
'requested_date': date.today() + timedelta(days=28),
}
sale_order_dates()
但是,如果我打开创建表单,我会收到此错误:
“服务器遇到内部错误,无法完成您的请求。服务器过载或应用程序出错。”
这可能是因为我无法在 _defaults 中进行操作,但我不知道该怎么做,我试图在函数中进行操作,但我对函数还不是很满意。 你对我该怎么做有什么想法吗? 提前致谢
编辑:这是计算机终端上的错误消息
2015-04-30 19:50:40,217 8666 ERROR Armand werkzeug: Error on request:
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/werkzeug/serving.py", line 180, in run_wsgi
execute(self.server.app)
File "/usr/local/lib/python2.7/dist-packages/werkzeug/serving.py", line 168, in execute
application_iter = app(environ, start_response)
File "/home/odoo/server/7.0/openerp/service/wsgi_server.py", line 417, in application
return application_unproxied(environ, start_response)
File "/home/odoo/server/7.0/openerp/service/wsgi_server.py", line 403, in application_unproxied
result = handler(environ, start_response)
File "/home/odoo/web/7.0/addons/web/http.py", line 528, in __call__
return self.dispatch(environ, start_response)
File "/home/odoo/web/7.0/addons/web/http.py", line 487, in __call__
return self.app(environ, start_wrapped)
File "/usr/local/lib/python2.7/dist-packages/werkzeug/wsgi.py", line 591, in __call__
return self.app(environ, start_response)
File "/home/odoo/web/7.0/addons/web/http.py", line 487, in __call__
return self.app(environ, start_wrapped)
File "/usr/local/lib/python2.7/dist-packages/werkzeug/wsgi.py", line 591, in __call__
return self.app(environ, start_response)
File "/home/odoo/web/7.0/addons/web/http.py", line 553, in dispatch
result = handler(request)
File "/home/odoo/web/7.0/addons/web/http.py", line 618, in <lambda>
return lambda request: JsonRequest(request).dispatch(method)
File "/home/odoo/web/7.0/addons/web/http.py", line 251, in dispatch
body = simplejson.dumps(response)
File "/usr/local/lib/python2.7/dist-packages/simplejson/__init__.py", line 370, in dumps
return _default_encoder.encode(obj)
File "/usr/local/lib/python2.7/dist-packages/simplejson/encoder.py", line 271, in encode
chunks = list(chunks)
File "/usr/local/lib/python2.7/dist-packages/simplejson/encoder.py", line 632, in _iterencode
for chunk in _iterencode_dict(o, _current_indent_level):
File "/usr/local/lib/python2.7/dist-packages/simplejson/encoder.py", line 591, in _iterencode_dict
for chunk in chunks:
File "/usr/local/lib/python2.7/dist-packages/simplejson/encoder.py", line 591, in _iterencode_dict
for chunk in chunks:
File "/usr/local/lib/python2.7/dist-packages/simplejson/encoder.py", line 642, in _iterencode
o = _default(o)
File "/usr/local/lib/python2.7/dist-packages/simplejson/encoder.py", line 246, in default
raise TypeError(repr(o) + " is not JSON serializable")
TypeError: datetime.date(2015, 5, 28) is not JSON serializable
所以看起来是_defaults中的操作不正确,可能这两个字段也不兼容,但我不知道我应该使用什么。
【问题讨论】:
-
您能在日志中找到堆栈跟踪吗?如果不在生产环境中,也许打开调试模式?
-
我不确定我是否理解,您是在谈论计算机终端告诉错误的内容吗?如果是这样,它是:“ raise TypeError(repr(o) + " is not JSON serializable") TypeError: datetime.date(2015, 5, 28) is not JSON serializable " 还有一些我不知道的文件的参考不知道,但是消息很长,我应该全部粘贴吗?在 OpenERP 调试模式下,我看不到我使用的字段,因为视图继承自多个 xml 文件。
-
是的,这类信息很有帮助。您应该将其包含在您的问题中,以便正确格式化。