Django Graphene фильтрует поле даты с помощью startswith, используя год и месяц

Я использую Django и Graphene и создал GraphQL-запрос для возврата заказов на покупку из моей базы данных. Все заказы имеют поле date, связанное с ним, чтобы представить, когда заказ был создан. Значения в этом столбце имеют формат 2022-05-01 08:38:17+01 - я знаю, что это поле даты и в какой-то момент переименую столбец

Я пытаюсь создать фильтр для пользователя, чтобы возвращать данные только из определенного месяца в определенном году. Значение фильтра представлено как 2022-05 для года и месяца.

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

Схема

class Purchases(DjangoObjectType):
    id = graphene.ID(source='pk', required=True)

    class Meta:
        model = purchase_orders
        interfaces = (relay.Node,)
        filter_fields = {'date': ['startswith']}
        connection_class = ArtsyConnection

GraphQL Query

{
  Purchases(first: 15, after: "", date_Startswith: "2022-05") {
  ...

Ответ

{
  "errors": [
    {
      "message": "Argument \"date_Startswith\" has invalid value \"2022-05\".\nExpected type \"DateTime\", found \"2022-05\".",
      "locations": [
        {
          "line": 3,
          "column": 62
        }
      ]
    }
  ]
}
Вернуться на верх