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
}
]
}
]
}