diff --git a/graphene/contrib/django/types.py b/graphene/contrib/django/types.py index 1f198e75..fbc770d5 100644 --- a/graphene/contrib/django/types.py +++ b/graphene/contrib/django/types.py @@ -1,21 +1,14 @@ import six -from django.db import models from graphene.core.types import ObjectTypeMeta, BaseObjectType from graphene.contrib.django.options import DjangoOptions from graphene.contrib.django.converter import convert_django_field +from graphene.contrib.django.utils import get_reverse_fields from graphene.relay.types import BaseNode from graphene.relay.fields import GlobalIDField -def get_reverse_fields(model): - for name, attr in model.__dict__.items(): - related = getattr(attr, 'related', None) - if isinstance(related, models.ManyToOneRel): - yield related - - class DjangoObjectTypeMeta(ObjectTypeMeta): options_cls = DjangoOptions diff --git a/graphene/contrib/django/utils.py b/graphene/contrib/django/utils.py index e8caf032..fc91d4ba 100644 --- a/graphene/contrib/django/utils.py +++ b/graphene/contrib/django/utils.py @@ -1,3 +1,4 @@ +from django.db import models from django.db.models.query import QuerySet from django.db.models.manager import Manager @@ -15,6 +16,13 @@ def get_type_for_model(schema, model): return _type +def get_reverse_fields(model): + for name, attr in model.__dict__.items(): + related = getattr(attr, 'related', None) + if isinstance(related, models.ManyToOneRel): + yield related + + def lazy_map(value, func): if isinstance(value, Manager): value = value.get_queryset()