Как устранить ошибку: данные времени 'False' не соответствуют формату '% Y-% m-% d% H:% M:% S' - PullRequest
0 голосов
/ 08 июля 2019

Когда я пытаюсь выполнить действие подтверждения, которое изменяет поля hr.attendance с помощью запроса на изменение, эта ошибка отображается. Я пытался найти в сети информацию об этой ошибке, но основным ответом был формат базы данных, а не тот с кодом, но в моем случае я видел данные моей базы данных, но я обнаружил, что используется тот же формат. Любая идея о том, как я могу решить эту проблему?

hr.attendance

enter image description here

вот мой код

 @api.multi
def modification_approval(self):     attend_signin_ids = self.env['hr.attendance'].search([('employee_id','=',self.employee_id.id)])
    check_in_date = datetime.datetime.strptime(str(self.time_check_in_1), "%Y-%m-%d %H:%M:%S").date()
    check_out_date = datetime.datetime.strptime(str(self.time_check_out_1), "%Y-%m-%d %H:%M:%S").date()
    for obj in attend_signin_ids:
        attendance_check_in_date = datetime.datetime.strptime(str(obj.check_in), "%Y-%m-%d %H:%M:%S").date()
        attendance_check_out_date = datetime.datetime.strptime(str(obj.check_out), "%Y-%m-%d %H:%M:%S").date()
        if (check_in_date == attendance_check_in_date):
            obj.write({'check_in': self.time_check_in_1,
                       'check_out': self.time_check_out_1})

    return self.write({
        'state': 'approved'
    })

Traceback

Traceback (most recent call last):
File "/opt/openhrms/odoo/http.py", line 651, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/opt/openhrms/odoo/http.py", line 310, in _handle_exception
raise pycompat.reraise(type(exception), exception, sys.exc_info()[2])
File "/opt/openhrms/odoo/tools/pycompat.py", line 87, in reraise
raise value
File "/opt/openhrms/odoo/http.py", line 693, in dispatch
result = self._call_function(**self.params)
File "/opt/openhrms/odoo/http.py", line 342, in _call_function
return checked_call(self.db, *args, **kwargs)
File "/opt/openhrms/odoo/service/model.py", line 97, in wrapper
return f(dbname, *args, **kwargs)
File "/opt/openhrms/odoo/http.py", line 335, in checked_call
result = self.endpoint(*a, **kw)
File "/opt/openhrms/odoo/http.py", line 937, in __call__
return self.method(*args, **kw)
File "/opt/openhrms/odoo/http.py", line 515, in response_wrap
response = f(*args, **kw)
File "/opt/openhrms/addons/web/controllers/main.py", line 938, in call_button
action = self._call_kw(model, method, args, {})
File "/opt/openhrms/addons/web/controllers/main.py", line 926, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "/opt/openhrms/odoo/api.py", line 689, in call_kw
return call_kw_multi(method, model, args, kwargs)
File "/opt/openhrms/odoo/api.py", line 680, in call_kw_multi
result = method(recs, *args, **kwargs)
File "/opt/openhrms/addons/sifast_attendance_modification_request/models/hr_attendance_modification_request.py", line 67, in modification_approval
attendance_check_out_date = datetime.datetime.strptime(str(obj.check_out),"%Y-%m-%d %H:%M:%S").date()
File "/usr/lib/python3.6/_strptime.py", line 565, in _strptime_datetime
tt, fraction = _strptime(data_string, format)
File "/usr/lib/python3.6/_strptime.py", line 362, in _strptime
(data_string, format))
ValueError: time data 'False' does not match format '%Y-%m-%d %H:%M:%S'

Ответы [ 2 ]

1 голос
/ 08 июля 2019

Данные времени «Ложь» появляются, когда это поле не является строкой даты или содержит нулевое значение, т. Е. (Obj.check_out), поэтому при вызове возвращает ложное значение. Сначала убедитесь, что поле содержит значение при вызове функции..

1 голос
/ 08 июля 2019

Если вы внимательно посмотрите на трассировку, вы увидите следующую строку:

File "/opt/openhrms/addons/sifast_attendance_modification_request/models/hr_attendance_modification_request.py", line 67, in modification_approval
attendance_check_out_date = datetime.datetime.strptime(str(obj.check_out),"%Y-%m-%d %H:%M:%S").date()

Это в сочетании с самой ошибкой

ValueError: time data 'False' does not match format '%Y-%m-%d %H:%M:%S'`

предполагает, что obj.check_out является логическим значением False а не строка даты.

...