0
我想創建一個模塊,可以這樣做:inputdate =「2017年2月27日」,nomonths = 2,因此outputdate必須爲「2017年4月27日」。 inputdate和nomonths是我們必須填寫的兩個字段,並且odoudate只是odoo中的一個「只讀」字段。在Odoo 10中添加幾個月到日期時間
class DateGenerate(models.Model):
_name = "studentmanagement.dategenerate"
inputdate = fields.Date()
nomonths = fields.Integer(required=True)
outputdate = fields.Date(readonly=True)
@api.onchange('inputdate','nomonths')
def add_month(self):
for record in self:
dt = fields.Datetime.to_string(record.inputdate)
inpYear = datetime.strptime(dt,"%Y")
inpMonth = datetime.strptime(dt,"%m")
inpDay = datetime.strptime(dt,"%d")
outYear = inpYear + int((inpMonth + record.nomonths - 1)/12)
outMonth = (inpMonth + record.nomonths - 1) % 12 + 1
record.outputdate = datetime.date(outMonth, inpDay, outYear)
我寫一個基於互聯網上的資源和解釋的代碼,但它不工作,導致錯誤:
我從這些讀碼和方向鏈接
https://docs.python.org/2/library/datetime.html https://github.com/odoo/odoo/blob/10.0/odoo/fields.py#L1504
我們可以做到這一點: 「record.outputdate = record.inputdate + relativedelta(months = + record.nomonths)」。記錄是odoo數據庫自身的一行,但它會導致錯誤:「File」dateutil \ relativedelta.pyc「,第247行,在__radd__中 TypeError:不支持的類型用於添加操作」 –
是您的record.inputdate python日期或日期時間對象?並且是你的記錄.nomonths是一個整數? –
nomonths是一個整數,但record.inputdate是ODOO中的一個日期對象,而不是python。所以我想這是錯誤,但我不知道如何在odoo中添加/獲取日期。 –