Přejít na obsah
Menu
You need to be registered to interact with the community.
This question has been flagged
2 Odpovědi
1539 Zobrazení

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


Avatar
Zrušit
Autor

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'

Nejlepší odpověď

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

Avatar
Zrušit

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

Autor

Perfect Jainesh! Thank you so much.

Nejlepší odpověď

Hi,

Avatar
Zrušit
Related Posts Odpovědi Zobrazení Aktivita
2
úno 25
1383
0
pro 24
998
1
dub 23
5187
1
bře 15
26162
1
bře 15
4255