Исключение при попытке использования даты в файле API
Я пытаюсь использовать постоянство API, используя asticsearch-dsl версии 6.2.1 следующим образом:
class MyClass(Document):
start = Date(format='dd-MM-yyyy HH:mm:ss:SSS')
stop = Date(format='dd-MM-yyyy HH:mm:ss:SSS')
Когда я звоню MyClass.init()
Я вижу (через Кибану), что на самом деле отображение, как я и ожидал:
"start": {
"type": "date",
"format": "dd-MM-yyyy HH:mm:ss:SSS"
},
"stop": {
"type": "date",
"format": "dd-MM-yyyy HH:mm:ss:SSS"
}
У меня есть переменная my_instance
который является примером MyClass
,my_instance.start
а также my_instance.stop
удерживайте строки, как '15-06-2018 02:54:05:382'
Когда я звоню my_instance.save()
Я получаю следующее исключение:
elasticsearch_dsl.exceptions.ValidationException: {'start':
[ValidationException("Could not parse date from the value ('15-06-2018
02:54:05:281')", ValueError('Unknown string format:', '15-06-2018
02:54:05:281'))], 'stop': [ValidationException("Could not parse date from the
value ('15-06-2018 02:54:05:382')", ValueError('Unknown string format:', '15-
06-2018 02:54:05:382'))]}
Что я делаю неправильно?
1 ответ
Решение
К несчастью elasticsearch-dsl
в настоящее время поддерживает только даты в формате ISO. Если вы хотите использовать любой другой формат, вам нужно указать (де) сериализацию самостоятельно.