跳至內容
選單
此問題已被標幟
3 回覆
16071 瀏覽次數

Hello Everyone, 

I have to try to add month into today date .

my code below : 

from odoo.tools import float_is_zero, float_compare, DEFAULT_SERVER_DATETIME_FORMAT
from datetime import datetime, date, timedelta
import datetime
start_month = fields.Date("start")
end_month =fields.Date("end", compute='_calculate_month')

@api.depends('start_month')
@api.multi
def _calculate_month(self):
if self.start_month:
Date = datetime.datetime.now()
EndDate = Date + datetime.timedelta(months=6)
end_month = EndDate
print "CD:", Date, end_month

Thank you in Advanced 

頭像
捨棄
最佳答案

Hi,

To add months with todays date, you can do it like this

from datetime import datetime
from dateutil.relativedelta import relativedelta

six_months_after  = datetime.now() + relativedelta(months=6)

or in your code change the line ,

Date = datetime.datetime.now()

into

Date = datetime.now()

For writing the values into field, you have to do like this

self.end_month = six_months_after

thanks

頭像
捨棄
作者

Hello, I am implement changes and it's value print but it's value is not reflected to my field. and changes code below :

start_month = fields.Date("start")

end_month =fields.Date("end", compute='_calculate_month')

@api.depends('start_month')

@api.multi

def _calculate_month(self):

if self.start_month:

Date_Start = datetime.now()

print"Start Date", Date_Start

six_months_after = Date_Start + relativedelta(months=6)

print"After six month", six_months_after

end_month = six_months_after

print "end month:", end_month

so anything wrong in above code?

Answer updated, please check it

作者

Thanks @Niyas, it's work for me. But one more query how can i change datenow field with custom date field because it show error when i use default date instead of datenow field. Also i use duration in month(6, 12, 24,36).

Thanks for your reply

作者 最佳答案

Hello, I am implement changes and it's value print but it's value is not reflected to my field. and changes code below :

start_month = fields.Date("start")

end_month =fields.Date("end", compute='_calculate_month')

@api.depends('start_month', '')

@api.multi

def _calculate_month(self):

if self.start_month:

Date_Start = datetime.now()

print"Start Date", Date_Start

six_months_after = Date_Start + relativedelta(months=6)

print"After six month", six_months_after

end_month = six_months_after

print "end month:", end_month

so anything wrong in above code?

頭像
捨棄

Do like this,

self.end_month = six_months_after.

Updated the answer

相關帖文 回覆 瀏覽次數 活動
1
7月 19
8488
1
1月 22
28805
1
6月 18
15299
1
3月 18
4098
0
3月 18
2561