Hello,
I want to have difference of dwo dates.
I write the function in Compute field in odoo:
fmt = '%Y-%m-%d %H:%M:%S'
for record in self:
record_id = record.id
start_hour = record.date_start
end = record.date_end
if record.date_end is None:
end = 0
diff = 0
else:
end = record.date_end
a = datetime.datetime.strptime(end, fmt)
b = datetime.datetime.strptime(start_hour, fmt)
diff = (a-b)
record['x_test_true_working_hours'] = diff
But i have an error :
Traceback (most recent call last):
  File "/odoo/odoo-server/odoo/http.py", line 641, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
  File "/odoo/odoo-server/odoo/http.py", line 683, in dispatch
    result = self._call_function(**self.params)
  File "/odoo/odoo-server/odoo/http.py", line 333, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "/odoo/odoo-server/odoo/service/model.py", line 101, in wrapper
    return f(dbname, *args, **kwargs)
  File "/odoo/odoo-server/odoo/http.py", line 326, in checked_call
    result = self.endpoint(*a, **kw)
  File "/odoo/odoo-server/odoo/http.py", line 941, in __call__
    return self.method(*args, **kw)
  File "/odoo/odoo-server/odoo/http.py", line 506, in response_wrap
    response = f(*args, **kw)
  File "/odoo/odoo-server/addons/web/controllers/main.py", line 832, in search_read
    return self.do_search_read(model, fields, offset, limit, domain, sort)
  File "/odoo/odoo-server/addons/web/controllers/main.py", line 854, in do_search_read
    offset=offset or 0, limit=limit or False, order=sort or False)
  File "/odoo/odoo-server/odoo/models.py", line 4693, in search_read
    result = records.read(fields)
  File "/odoo/odoo-server/odoo/models.py", line 3018, in read
    values[name] = field.convert_to_read(record[name], record, use_name_get)
  File "/odoo/odoo-server/odoo/models.py", line 5208, in __getitem__
    return self._fields[key].__get__(self, type(self))
  File "/odoo/odoo-server/odoo/fields.py", line 910, in __get__
    self.determine_value(record)
  File "/odoo/odoo-server/odoo/fields.py", line 1022, in determine_value
    self.compute_value(recs)
  File "/odoo/odoo-server/odoo/fields.py", line 976, in compute_value
    self._compute_value(records)
  File "/odoo/odoo-server/odoo/fields.py", line 969, in _compute_value
    self.compute(records)
  File "/odoo/odoo-server/odoo/addons/base/ir/ir_model.py", line 34, in <lambda>
    func = lambda self: safe_eval(text, SAFE_EVAL_BASE, {'self': self}, mode="exec")
  File "/odoo/odoo-server/odoo/tools/safe_eval.py", line 301, in safe_eval
    return unsafe_eval(c, globals_dict, locals_dict)
  File "", line 14, in <module>
ValueError: <type 'exceptions.TypeError'>: "strptime() argument 1 must be string, not bool" while evaluating
u"fmt = '%Y-%m-%d %H:%M:%S'  \r\nfor record in self:\r\n\r\n  \r\n        record_id = record.id\r\n        start_hour = record.date_start\r\n        end = record.date_end\r\n\r\n        if record.date_end is None:\r\n#            end = None \r\n            diff = 0\r\n        else:\r\n            end = record.date_end\r\n            a = datetime.datetime.strptime(end, fmt)\r\n            b = datetime.datetime.strptime(start_hour, fmt)\r\n#            diff = (a-b)\r\n\r\n        record['x_test_true_working_hours'] = a"How to fix this ?
 
                        
you have problem with your variable. try to use relative delta instead