Я использую DjangoFilterConnectionField
в своем проекте следующим образом:
all_sessions = DjangoFilterConnectionField(SessionNode, filterset_class=AgendaFilter)
SessionNode
создан на основе модели Session
в моем приложении Django. Теперь я хотел бы иметь возможность упорядочить эти сеансы по двум полям: start_date
и start_time
.
. Для этого я создал следующий фильтр:
class AgendaFilter(FilterSet):
class Meta:
model = Session
exclude = []
order_by = OrderingFilter(
fields=(
("start_date", "start_date"),
("start_time", "start_time")
)
)
Когда я фильтрую сеансы только по одному полю, используя orderBy
, результаты запроса располагаются правильно, как и ожидалось. Когда я пытаюсь использовать оба поля в фильтре (показано ниже), возвращаемые результаты не упорядочены в соответствии с одним из них:
{
allSessions(orderBy: "[start_date, start_time]") {
edges {
node {
id
startDate
startTime
}
}
}
}
Я пробовал разные способы передачи двух полей в orderBy
, но никто из них не работал для меня. Как правильно оформить заказ на start_date
, а затем на start_time
в одном запросе? В соответствии с графеновой документацией это возможно:
Заказ Вы можете использовать OrderFilter, чтобы определить, как вы хотите, чтобы ваши возвращаемые результаты были упорядочены.
Расширение кортеж полей, если вы хотите упорядочить по нескольким полям.
Это ошибка в графене или я что-то не так делаю?