From 609baec3a0a4ba5e677909ca14498280fa38b70d Mon Sep 17 00:00:00 2001 From: Jonathan Kim Date: Sun, 4 Aug 2019 08:27:16 +0100 Subject: [PATCH] Fix model property --- graphene_django/fields.py | 5 ++++- graphene_django/tests/test_fields.py | 18 ++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 graphene_django/tests/test_fields.py 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