Пользовательский get_queryset графен-джанго из DjangoObjectType не работает - PullRequest
0 голосов
/ 08 июля 2019

в официальных документах: https://docs.graphene -python.org / projects / django / en / latest / query / # default-queryset .На практике ничего не происходит.Пожалуйста помоги.Ниже, например, у меня есть просто простая часть кода с моделью Contact, которая имеет 3 поля (id, kind, value).Я хочу, чтобы ContactType всегда фильтровался с помощью kind = 'PHONE'.

class ContactType(DjangoObjectType):
    class Meta:
        model = Contact

    @classmethod
    def get_queryset(cls, queryset, info):
        return queryset.filter(kind='PHONE')

class ContactQuery(graphene.ObjectType):
    contacts = graphene.List(ContactType)

    def resolve_contacts(self, info, **kwargs):
        return Contact.objects.all()

Запрос:

{
    contacts {
        id
        kind
        value
    }
}

возвращает:

{
  "data": {
    "contacts": [
      {
        "id": "1",
        "kind": "INSTAGRAM",
        "value": "technodomkz"
      },
      {
        "id": "3",
        "kind": "YOUTUBE",
        "value": "UCF-HjvMMvgnhXhO4shk9i9Q"
      },
      {
        "id": "4",
        "kind": "FACEBOOK",
        "value": "technodomkz"
      },
      {
        "id": "5",
        "kind": "TWITTER",
        "value": "technodom_kz"
      },
      {
        "id": "6",
        "kind": "PHONE",
        "value": "88000801111"
      },
      {
        "id": "7",
        "kind": "PHONE",
        "value": "87272799999"
      },
      {
        "id": "8",
        "kind": "EMAIL",
        "value": "callcenter@technodom.kz"
      },
      {
        "id": "2",
        "kind": "WEBSITE",
        "value": "www.technodom.kz"
      }
    ]
  }
}

вместо:

{
  "data": {
    "contacts": [
      {
        "id": "6",
        "kind": "PHONE",
        "value": "88000801111"
      },
      {
        "id": "7",
        "kind": "PHONE",
        "value": "87272799999"
      }
    ]
  }
}
...