Есть ли способ удалить ребра и узел при использовании DjangoFilterConnectionField? - PullRequest
0 голосов
/ 19 февраля 2020

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

{users(nameIcontains:"a")
{
   edges{
     node{
       name
     }
   }
}

я бы хотел сделать это

{users(nameIcontains:"a")
{
  name
}

1 Ответ

0 голосов
/ 19 марта 2020
from graphene import ObjectType
from graphene_django import DjangoObjectType

class UserType(DjangoObjectType):
    class Meta:
        filter_fields = {'id': ['exact']}
        model = User    


class Query(ObjectType):
    all_users = List(UserType)

    @staticmethod
    def resolve_all_users(root, info, **kwargs):
        users = User.objects.all()
        # filtering like user.objects.filter ....

        return all_users

Если вы хотите фильтровать на основе некоторых, скажем, department_id и необязательного social_club_id:

class Query(ObjectType):
    all_users = List(
        UserType,
        department_id=ID(required=True),
        social_club_id=ID(),    # optional
    )

    @staticmethod
    def resolve_all_users(root, info, department_id, **kwargs):
        social_club_id = kwargs.pop('social_club_id', None)

        users = User.objects.all()
        # filtering like user.objects.filter ....

        return all_users.objects.filter(department_id=department_id)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...