TypeError: Невозможно сериализовать datetime.time. Django, Dsl elasticsearch, Python

у меня есть документ с

последняя_доставка = ObJectField()

"City": {
   "delivery_time": TimeField,
   "order_time": TimeField,
}

пример:

"late_delivery": {
    "SomeCity": {
        "delivery_time": "23:00:00",
        "order_time": "22:00:00",
   },

и я хочу отфильтровать набор запросов по datetime.time, который меньше чем сейчас

я пытался

class LateDeliveryFilter(BaseFilterBackend):

    def filter_queryset(self, request, queryset, view):
        
        late_delivery_requested = request.data.get("late_delivery", None)
        if not late_delivery_requested:
           return queryset

        now = datetime.now().time()

        queryset = queryset.filter(fulfillment=RB_STOCK)
        kwargs = {
            f"late_delivery__{settings.CITY_NAME}__order_time": {"lt": now}
        }
        return queryset.filter("range",  **kwargs)

но я получаю ошибку

TypeError("Unable to serialize datetime.time(12, 51, 22, 708584) (type: <class 'datetime.time'>)"))

может ли кто-нибудь помочь с этим?

Объект времени должен быть отформатирован в ISO 8501 String, чтобы индексация Elasticsearch работала, например.

Попробуйте это:

now = datetime.now().time().isoformat()

Вернуться на верх