Невозможно упорядочить по двум полям, используя фильтр django в графене- django - PullRequest
0 голосов
/ 02 апреля 2020

Я использую 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, чтобы определить, как вы хотите, чтобы ваши возвращаемые результаты были упорядочены.

Расширение кортеж полей, если вы хотите упорядочить по нескольким полям.

Это ошибка в графене или я что-то не так делаю?

...