Python 在我们选择的当前日期上添加30天,并显示在新字段中

Python 在我们选择的当前日期上添加30天,并显示在新字段中,python,openerp,Python,Openerp,我试图在sale.orderOpenERP v.7中的日期字段中添加30天 实际上我是这样做的,但问题是我希望在我在“其他日期”字段中选择的日期上添加30天,而不仅仅是在今天的日期上添加30天 日期字段是Date\u order。当我选择一个日期时,我希望在选择的日期上加上30天。在代码中,我将它添加到今天的30天,但我希望它在我选择的日期在30天后自动更改 class Sale_Order(osv.Model): _inherit = 'sale.order' _columns =

我试图在
sale.orderOpenERP v.7中的日期字段中添加30天
实际上我是这样做的,但问题是我希望在我在“其他日期”字段中选择的日期上添加30天,而不仅仅是在今天的日期上添加30天

日期字段是
Date\u 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描述为函数字段(是否存储在表中)

检索日期的方法:

def _get_due_date(self, cr, uid, ids, name, args, context=None):
    ... 
字段说明:

'duedate': fields.function(_get_due_date, type='datetime', string="Due date"),

听起来您需要重写create/write方法来更改“duedate”,如果日期字段已更改。 但您也可以将duedate描述为函数字段(是否存储在表中)

检索日期的方法:

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定义为计算字段

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)

希望这对您有所帮助。

要实现,您需要将duedate字段设置为compute类型

例如:

from datetime import date
from dateutil.relativedelta import relativedelta
将duedate定义为计算字段

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)
希望这对你有帮助