Пользовательский get_queryset графен-джанго из DjangoObjectType не работает
В официальных документах: https://docs.graphene-python.org/projects/django/en/latest/queries/. На практике ничего не происходит. Пожалуйста помоги. Ниже, например, у меня есть просто простая часть кода с моделью 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"
}
]
}
}
0 ответов
Для тех, кто ищет ответ на этот вопрос, можно найти здесь ответ.
Попробуйте заменить List на DjangoConnectionField. Похоже, нам нужно задокументировать, что get_queryset работает с DjangoConnectionField и что поля без ретрансляции, такие как List, не обладают такой магией.