diff --git a/graphene_django/fields.py b/graphene_django/fields.py index eb1215e..17086b3 100644 --- a/graphene_django/fields.py +++ b/graphene_django/fields.py @@ -20,7 +20,10 @@ class DjangoListField(Field): @property def model(self): - return self.type.of_type._meta.node._meta.model + _type = self.type.of_type + if isinstance(_type, NonNull): + _type = _type.of_type + return _type._meta.model @staticmethod def list_resolver(resolver, root, info, **args): diff --git a/graphene_django/tests/test_fields.py b/graphene_django/tests/test_fields.py new file mode 100644 index 0000000..75f27da --- /dev/null +++ b/graphene_django/tests/test_fields.py @@ -0,0 +1,18 @@ +import pytest +from graphene import ObjectType, Schema + +from ..fields import DjangoListField +from ..types import DjangoObjectType +from .models import Reporter as ReporterModel + + +@pytest.mark.django_db +class TestDjangoListField: + def test_get_django_model(self): + class Reporter(DjangoObjectType): + class Meta: + model = ReporterModel + fields = ("first_name",) + + list_field = DjangoListField(Reporter) + assert list_field.model is ReporterModel