在我们选择的当前日期上加上 30 天并显示在新字段中
Add 30 days on the current date we choose and display in a new field
我正在尝试在 OpenERP v.7 的 sale.order
中的日期字段中添加 30 天
实际上我做到了,但问题是我希望在我在其他日期字段中选择的日期添加 30 天,而不仅仅是在今天的日期添加 30 天。
日期字段是 date_order
。当我选择一个日期时,我希望在所选日期添加 30 天。在代码中,我在今天的日期添加了 30 天,但我希望它在我选择的日期自动更改为 30 天后。
class Sale_Order(osv.Model):
_inherit = 'sale.order'
_columns = {
'duedate': fields.date('Duedate', readonly=True),
}
_defaults = {
'duedate': (date.today() + timedelta(days=30)).strftime(DEFAULT_SERVER_DATE_FORMAT),
}
有人可以帮助我吗?
谢谢!
听起来您需要覆盖 create/write 方法来更改 "duedate",如果日期字段已更改。
但你也可以将 duedate 描述为功能字段(存储在 table 或不存储)。
检索日期的方法:
def _get_due_date(self, cr, uid, ids, name, args, context=None):
...
字段说明:
'duedate': fields.function(_get_due_date, type='datetime', string="Due date"),
为了实现,您需要将 duedate 字段设为计算类型
示例:
from datetime import date
from dateutil.relativedelta import relativedelta
将截止日期定义为计算字段
duedate = fields.Date(string='Duedate', compute='_compute_duedate')
定义计算函数
@api.multi
def _compute_duedate(self):
for rec in self:
rec.duedate = date.today() + relativedelta(months=+1)
希望对您有所帮助。
我正在尝试在 OpenERP v.7 的 sale.order
中的日期字段中添加 30 天
实际上我做到了,但问题是我希望在我在其他日期字段中选择的日期添加 30 天,而不仅仅是在今天的日期添加 30 天。
日期字段是 date_order
。当我选择一个日期时,我希望在所选日期添加 30 天。在代码中,我在今天的日期添加了 30 天,但我希望它在我选择的日期自动更改为 30 天后。
class Sale_Order(osv.Model):
_inherit = 'sale.order'
_columns = {
'duedate': fields.date('Duedate', readonly=True),
}
_defaults = {
'duedate': (date.today() + timedelta(days=30)).strftime(DEFAULT_SERVER_DATE_FORMAT),
}
有人可以帮助我吗?
谢谢!
听起来您需要覆盖 create/write 方法来更改 "duedate",如果日期字段已更改。 但你也可以将 duedate 描述为功能字段(存储在 table 或不存储)。
检索日期的方法:
def _get_due_date(self, cr, uid, ids, name, args, context=None):
...
字段说明:
'duedate': fields.function(_get_due_date, type='datetime', string="Due date"),
为了实现,您需要将 duedate 字段设为计算类型
示例:
from datetime import date
from dateutil.relativedelta import relativedelta
将截止日期定义为计算字段
duedate = fields.Date(string='Duedate', compute='_compute_duedate')
定义计算函数
@api.multi
def _compute_duedate(self):
for rec in self:
rec.duedate = date.today() + relativedelta(months=+1)
希望对您有所帮助。