graphql-python / graphql-python/graphene-mongo

No ability to get QuerySet in relay.Connection when use custom resolver in graphene.ObjectType

Abierto
#249 0 comentarios 0 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
Python
Estrellas
287
Forks
111
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

When I want to add some custom resolver (some complicated filter for example) for graphene.ObjectType I will lose opportunity to get filtered count number in Connection and etc. Example:
```
class Connection(relay.Connection):
"""Connection class"""

class Meta:
"""Meta class"""
abstract = True

total_count = graphene.Int()

def resolve_total_count(root, info, **kwargs):
"""Counts total number of documents with filters"""
return root.iterable.count()

class SomeModel(MongoengineObjectType):
class Meta:
connection_class = Connection


class SomeQueryRely(graphene.ObjectType):
q = MongoengineConnectionField(SomeModel, filter_one = graphene.String(name="filter_one"), filter_two =graphene.String(name="filter_two"))
def resolve_q(self, info: GraphQLResolveInfo, **kwargs):
query: QuerySet = info.context.queryset
QuerySet.filter(Q(filter_one=kwargs["filter_one"]) | Q(filter_two=kwargs["filter_two"]))
return query
```

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Línea de trabajo

Comienza rastreando el resolver personalizado a través de MongoengineConnectionField y relay.Connection, centrándote en cómo el QuerySet del resolver llega a la conexión. Reproduce el ejemplo con filter_one y filter_two y, a continuación, verifica que el QuerySet filtrado siga disponible para total_count y los campos de conexión relacionados.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
python
Área
api, database
Tipo de issue
Nueva funcionalidad
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Necesita aclaración
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.