@@ -57,8 +57,7 @@ arguments.
57
57
58
58
NOTE: The class resolvers in a ``ObjectType `` are treated as ``staticmethod``s
59
59
always, so the first argument in the resolver: ``self `` (or ``root ``) doesn't
60
- need to be an actual instance of the ``ObjectType ``. In the case this happens, please
61
- overwrite the ``is_type_of `` method.
60
+ need to be an actual instance of the ``ObjectType ``.
62
61
63
62
64
63
Quick example
@@ -96,54 +95,6 @@ A field could also specify a custom resolver outside the class:
96
95
reverse = graphene.String(word = graphene.String(), resolver = reverse)
97
96
98
97
99
- Is Type Of
100
- ----------
101
-
102
- An ``ObjectType `` could be resolved within a object that is not an instance of this
103
- ``ObjectType ``. That means that the resolver of a ``Field `` could return any object.
104
-
105
- Let's see an example:
106
-
107
- .. code :: python
108
-
109
- import graphene
110
-
111
- class Ship :
112
- def __init__ (self , name ):
113
- self .name = name
114
-
115
- class ShipType (graphene .ObjectType ):
116
- name = graphene.String(description = " Ship name" , required = True )
117
-
118
- @resolve_only_args
119
- def resolve_name (self ):
120
- # Here self will be the Ship instance returned in resolve_ship
121
- return self .name
122
-
123
- class Query (graphene .ObjectType ):
124
- ship = graphene.Field(ShipType)
125
-
126
- def resolve_ship (self , context , args , info ):
127
- return Ship(name = ' xwing' )
128
-
129
- schema = graphene.Schema(query = Query)
130
-
131
-
132
- In this example, we are returning a ``Ship `` which is not an instance of ``ShipType ``.
133
- If we execute a query on the ship, we would see this error:
134
- `"Expected value of type \"ShipType\" but got: instance." `
135
-
136
- That's happening because GraphQL have no idea what type ``Ship `` is. For solving this,
137
- we only have to add a ``is_type_of `` method in ``ShipType ``
138
-
139
- .. code :: python
140
-
141
- class ShipType (graphene .ObjectType ):
142
- @ classmethod
143
- def is_type_of (cls , root , context , info ):
144
- return isinstance (root, (Ship, ShipType))
145
-
146
-
147
98
Instances as data containers
148
99
----------------------------
149
100
0 commit comments