有什么方法可以用函数字段 odoo 格式化日期吗?
any way to format date with function field odoo?
有没有办法在 odoo/openerp 的视图中以不同的格式显示日期字段?
我尝试使用以下几行函数字段:
def _format_date(self, cr, uid, ids, field_name, arg, context=None):
res = {}
for line in self.browse(cr, uid, ids, context=context):
res[line.id]= {
'date_fin':'',
}
print line.id,'date ',str(line.date).replace(',','.')
if line.date:
res[line.id]['date_fin']=line.date #.split()[0]
return res
_columns={
'date_fin': fields.function( _format_date,method=True, string='date fin',
store = {
'stock.move': (lambda self, cr, uid, ids, c={}: ids, ['sale_price_unit','product_uom_qty'], 10),
},
),
}
我收到这个错误:
2015-03-11 09:35:13,539 7075 ERROR db_name openerp.http: Exception during JSON request handling.
Traceback (most recent call last):
File "/opt/odoo/odoo/openerp/http.py", line 518, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/opt/odoo/odoo/openerp/http.py", line 539, in dispatch
result = self._call_function(**self.params)
...
File "/opt/odoo/odoo/openerp/models.py", line 5237, in <dictcomp>
if name in fields
File "/opt/odoo/odoo/openerp/fields.py", line 1028, in convert_to_cache
return float_round(float(value or 0.0), precision_digits=self.digits[1])
TypeError: float() argument must be a string or a number
你知道这个错误吗
在语言设置中,您可以为特定语言更改整个系统的日期格式。
但是如果您只想为特定字段格式化日期,您可以使用计算字段而不是相关字段。计算方法中,returns格式良好的日期
您可以这样定义计算字段:
def _get_date_fin(self):
self.date_fin = self.date.strftime('%d-%m-%Y')
_columns={
'date_fin': fields.char(string='datee', size=64, readonly=True, compute=_get_date_fin),
}
我解决了:
def _format_date(self, cr, uid, ids, field_name, arg, context=None):
res = {}
for line in self.browse(cr, uid, ids, context=context):
print line.id,'date ',str(line.date).replace(',','.')
if line.date:
res[line.id]=line.date.split()[0]
return res
_columns={
'date_fin': fields.function( _format_date,method=True, string='date fin',type='date',
store = {
'stock.move': (lambda self, cr, uid, ids, c={}: ids, ['sale_price_unit','product_uom_qty'], 10),
},
),
}
有没有办法在 odoo/openerp 的视图中以不同的格式显示日期字段? 我尝试使用以下几行函数字段:
def _format_date(self, cr, uid, ids, field_name, arg, context=None):
res = {}
for line in self.browse(cr, uid, ids, context=context):
res[line.id]= {
'date_fin':'',
}
print line.id,'date ',str(line.date).replace(',','.')
if line.date:
res[line.id]['date_fin']=line.date #.split()[0]
return res
_columns={
'date_fin': fields.function( _format_date,method=True, string='date fin',
store = {
'stock.move': (lambda self, cr, uid, ids, c={}: ids, ['sale_price_unit','product_uom_qty'], 10),
},
),
}
我收到这个错误:
2015-03-11 09:35:13,539 7075 ERROR db_name openerp.http: Exception during JSON request handling.
Traceback (most recent call last):
File "/opt/odoo/odoo/openerp/http.py", line 518, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/opt/odoo/odoo/openerp/http.py", line 539, in dispatch
result = self._call_function(**self.params)
...
File "/opt/odoo/odoo/openerp/models.py", line 5237, in <dictcomp>
if name in fields
File "/opt/odoo/odoo/openerp/fields.py", line 1028, in convert_to_cache
return float_round(float(value or 0.0), precision_digits=self.digits[1])
TypeError: float() argument must be a string or a number
你知道这个错误吗
在语言设置中,您可以为特定语言更改整个系统的日期格式。
但是如果您只想为特定字段格式化日期,您可以使用计算字段而不是相关字段。计算方法中,returns格式良好的日期
您可以这样定义计算字段:
def _get_date_fin(self):
self.date_fin = self.date.strftime('%d-%m-%Y')
_columns={
'date_fin': fields.char(string='datee', size=64, readonly=True, compute=_get_date_fin),
}
我解决了:
def _format_date(self, cr, uid, ids, field_name, arg, context=None):
res = {}
for line in self.browse(cr, uid, ids, context=context):
print line.id,'date ',str(line.date).replace(',','.')
if line.date:
res[line.id]=line.date.split()[0]
return res
_columns={
'date_fin': fields.function( _format_date,method=True, string='date fin',type='date',
store = {
'stock.move': (lambda self, cr, uid, ids, c={}: ids, ['sale_price_unit','product_uom_qty'], 10),
},
),
}