mirror of
https://github.com/graphql-python/graphene.git
synced 2024-11-11 12:16:58 +03:00
Improved default field getter and improved relay connection resolver
This commit is contained in:
parent
39a4fe20b3
commit
33c58f6cfa
|
@ -51,6 +51,16 @@ class Field(NamedType, OrderedType):
|
||||||
def resolver(self):
|
def resolver(self):
|
||||||
return self.resolver_fn or self.get_resolver_fn()
|
return self.resolver_fn or self.get_resolver_fn()
|
||||||
|
|
||||||
|
@property
|
||||||
|
def default(self):
|
||||||
|
if callable(self._default):
|
||||||
|
return self._default()
|
||||||
|
return self._default
|
||||||
|
|
||||||
|
@default.setter
|
||||||
|
def default(self, value):
|
||||||
|
self._default = value
|
||||||
|
|
||||||
def get_resolver_fn(self):
|
def get_resolver_fn(self):
|
||||||
resolve_fn_name = 'resolve_%s' % self.attname
|
resolve_fn_name = 'resolve_%s' % self.attname
|
||||||
if hasattr(self.object_type, resolve_fn_name):
|
if hasattr(self.object_type, resolve_fn_name):
|
||||||
|
|
|
@ -23,15 +23,15 @@ class ConnectionField(Field):
|
||||||
self.connection_type = connection_type
|
self.connection_type = connection_type
|
||||||
self.edge_type = edge_type
|
self.edge_type = edge_type
|
||||||
|
|
||||||
def wrap_resolved(self, value, instance, args, info):
|
|
||||||
return value
|
|
||||||
|
|
||||||
def resolver(self, instance, args, info):
|
def resolver(self, instance, args, info):
|
||||||
schema = info.schema.graphene_schema
|
schema = info.schema.graphene_schema
|
||||||
connection_type = self.get_type(schema)
|
connection_type = self.get_type(schema)
|
||||||
resolved = super(ConnectionField, self).resolver(instance, args, info)
|
resolved = super(ConnectionField, self).resolver(instance, args, info)
|
||||||
if isinstance(resolved, connection_type):
|
if isinstance(resolved, connection_type):
|
||||||
return resolved
|
return resolved
|
||||||
|
return self.from_list(connection_type, resolved, args, info)
|
||||||
|
|
||||||
|
def from_list(self, connection_type, resolved, args, info):
|
||||||
return connection_type.from_list(resolved, args, info)
|
return connection_type.from_list(resolved, args, info)
|
||||||
|
|
||||||
def get_connection_type(self, node):
|
def get_connection_type(self, node):
|
||||||
|
|
Loading…
Reference in New Issue
Block a user