File tree Expand file tree Collapse file tree 1 file changed +18
-3
lines changed Expand file tree Collapse file tree 1 file changed +18
-3
lines changed Original file line number Diff line number Diff line change 1
1
from functools import partial
2
2
3
3
from django .db .models .query import QuerySet
4
+ from graphene import NonNull
4
5
5
6
from promise import Promise
6
7
@@ -45,17 +46,31 @@ def type(self):
45
46
from .types import DjangoObjectType
46
47
47
48
_type = super (ConnectionField , self ).type
49
+ non_null = False
50
+ if isinstance (_type , NonNull ):
51
+ _type = _type .of_type
52
+ non_null = True
48
53
assert issubclass (
49
54
_type , DjangoObjectType
50
55
), "DjangoConnectionField only accepts DjangoObjectType types"
51
56
assert _type ._meta .connection , "The type {} doesn't have a connection" .format (
52
57
_type .__name__
53
58
)
54
- return _type ._meta .connection
59
+ connection_type = _type ._meta .connection
60
+ if non_null :
61
+ return NonNull (connection_type )
62
+ return connection_type
63
+
64
+ @property
65
+ def connection_type (self ):
66
+ type = self .type
67
+ if isinstance (type , NonNull ):
68
+ return type .of_type
69
+ return type
55
70
56
71
@property
57
72
def node_type (self ):
58
- return self .type ._meta .node
73
+ return self .connection_type ._meta .node
59
74
60
75
@property
61
76
def model (self ):
@@ -151,7 +166,7 @@ def get_resolver(self, parent_resolver):
151
166
return partial (
152
167
self .connection_resolver ,
153
168
parent_resolver ,
154
- self .type ,
169
+ self .connection_type ,
155
170
self .get_manager (),
156
171
self .max_limit ,
157
172
self .enforce_first_or_last ,
You can’t perform that action at this time.
0 commit comments