Accept all info for simplicity/futureproofing

This commit is contained in:
Jacob Foster 2017-07-19 23:10:52 -05:00
parent 1230da5413
commit ef22aff199
5 changed files with 8 additions and 7 deletions

View File

@ -27,7 +27,7 @@ class DjangoListField(Field):
qs = maybe_queryset(resolver(root, args, context, info))
if isinstance(qs, QuerySet):
qs = optimize_queryset(qs, info.field_asts[0])
qs = optimize_queryset(qs, info)
return qs
@ -76,7 +76,7 @@ class DjangoConnectionField(ConnectionField):
if iterable is not default_manager:
default_queryset = maybe_queryset(default_manager)
iterable = cls.merge_querysets(default_queryset, iterable)
iterable = optimize_queryset(iterable, info.field_asts[0])
iterable = optimize_queryset(iterable, info)
_len = iterable.count()
else:
_len = len(iterable)

View File

@ -76,7 +76,7 @@ class DjangoFilterConnectionField(DjangoConnectionField):
data=filter_kwargs,
queryset=default_manager.get_queryset()
).qs
qs = optimize_queryset(qs, info.field_asts[0])
qs = optimize_queryset(qs, info)
return super(DjangoFilterConnectionField, cls).connection_resolver(
resolver,

View File

@ -82,8 +82,9 @@ def get_related_fetches_for_model(model, graphql_ast):
return relateds
def optimize_queryset(queryset, graphql_ast):
relateds = get_related_fetches_for_model(queryset.model, graphql_ast)
def optimize_queryset(queryset, graphql_info):
base_ast = graphql_info.field_asts[0]
relateds = get_related_fetches_for_model(queryset.model, base_ast)
for related in relateds:
if related.fetch_type == SELECT:

View File

@ -44,7 +44,7 @@ class RootQuery(graphene.ObjectType):
def resolve_article(self, args, context, info):
qs = ArticleModel.objects
qs = optimize_queryset(qs, info.field_asts[0])
qs = optimize_queryset(qs, info)
return qs.get(**args)
def resolve_reporters(self, args, context, info):

View File

@ -121,7 +121,7 @@ class DjangoObjectType(six.with_metaclass(DjangoObjectTypeMeta, ObjectType)):
@classmethod
def get_node(cls, id, context, info):
query = cls._meta.model._meta.default_manager
query = optimize_queryset(query, info.field_asts[0])
query = optimize_queryset(query, info)
try:
return query.get(pk=id)
except cls._meta.model.DoesNotExist: