Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ
2 Trả lời
1657 Lượt xem

Hello Gurus

I am confused by this error. Both values should be datetime, shouldnt they??

As you can tell, I am not much of a programmer.


scheduled_start = fields.Datetime(string="Scheduled Start", default=lambda self: fields.Datetime.today(), tracking=True)
scheduled_finish = fields.Datetime(string="Scheduled Finish", default=lambda self: fields.Datetime.today(), tracking=True)

ERROR:

if vals['scheduled_finish']

TypeError: '


Ive tried to cast to datetime and str types but no combination seems to work. Little help please?

TIA


Ảnh đại diện
Huỷ bỏ
Tác giả

Not sure what happened to the rest of the error but I'll try again:
if vals['scheduled_finish'] < self.scheduled_start:
TypeError: '<' not supported between instances of 'str' and 'datetime.datetime'

Câu trả lời hay nhất

Hello Wombate,


This is TypeError comes when you matched the str and datetime

To handle this in write method :


//Code in Comment//


Thanks & Regards,

Email:  odoo@aktivsoftware.com           

Skype: kalpeshmaheshwari

Ảnh đại diện
Huỷ bỏ

Code:

def write(self, vals):
res = super().write(vals)
if isinstance(vals.get("scheduled_finish"), str):
vals["scheduled_finish"] = datetime.strptime(vals['scheduled_finish'], '%Y-%m-%d %H:%M:%S')

if vals['scheduled_finish'] < self.scheduled_start:
# your logic here
return res

Tác giả

Perfect Jainesh! Thank you so much.

Câu trả lời hay nhất

Hi,

Ảnh đại diện
Huỷ bỏ
Bài viết liên quan Trả lời Lượt xem Hoạt động
2
thg 2 25
1512
0
thg 12 24
1037
1
thg 4 23
5327
1
thg 3 15
26299
1
thg 3 15
4357