Skip ke Konten
Menu
Pertanyaan ini telah diberikan tanda
1 Balas
4633 Tampilan

When I traying to subtract this :

def get_duration(self):
for rec in self:
if rec.notification:
if rec.notification == 'month':
rec.notification_date = self.date_end - fields.Date(date.today() + relativedelta(months=1))
print(type(self.date_end))
print(type(date.today() + relativedelta(months=1)))

I get this error unsupported operand type(s) for 'datetime.date' and 'Date'.




Avatar
Buang
Jawaban Terbai

Hi jenan soliman,

You are trying to subtract between different data types. you can use following code for finding today's date. So both the datatypes will be in same format (fields.Date()). When you subtract two date objects, you will get the difference of those dates only. it will be a datetime.timedelta() object not a date object . So you have to find the date again using this timedelta object . See the code snippet below.


date_today = fields.Date.today()
date_difference = self.date_end - (date_today + relativedelta(months=1))

rec.notification_date = self.date_end - relativedelta(days=date_difference)

Thanks

Happy to help,

Avatar
Buang
Penulis

hi Muhsin,
I tried this, but I also get this error
'datetime.timedelta' object is not subscriptable.

Hi @jenan,
Sorry, I have updated the Answer with more details. please check once again, and don't forget to upvote if you find the answer usefull.

Thanks in advance

Post Terkait Replies Tampilan Aktivitas
2
Des 23
14616
0
Okt 23
33
3
Okt 23
788
1
Okt 23
569
1
Agu 23
2382