mirror of
https://github.com/graphql-python/graphene.git
synced 2025-02-23 23:20:47 +03:00
Fix a bug where you can not directly return
`relay.Connection.for_node(NodeType)(edges=edges, page_info=relay.PageInfo(has_next_page=has_next_page))` in a resolver
This commit is contained in:
parent
603d4770eb
commit
2a288eab9d
|
@ -24,8 +24,8 @@ class ConnectionField(Field):
|
||||||
last=Int(),
|
last=Int(),
|
||||||
description=description,
|
description=description,
|
||||||
**kwargs)
|
**kwargs)
|
||||||
self.connection_type = connection_type
|
self.connection_type = connection_type or Connection
|
||||||
self.edge_type = edge_type
|
self.edge_type = edge_type or Edge
|
||||||
|
|
||||||
@with_context
|
@with_context
|
||||||
def resolver(self, instance, args, context, info):
|
def resolver(self, instance, args, context, info):
|
||||||
|
@ -38,7 +38,7 @@ class ConnectionField(Field):
|
||||||
else:
|
else:
|
||||||
resolved = super(ConnectionField, self).resolver(instance, args, info)
|
resolved = super(ConnectionField, self).resolver(instance, args, info)
|
||||||
|
|
||||||
if isinstance(resolved, connection_type):
|
if isinstance(resolved, self.connection_type):
|
||||||
return resolved
|
return resolved
|
||||||
return self.from_list(connection_type, resolved, args, context, info)
|
return self.from_list(connection_type, resolved, args, context, info)
|
||||||
|
|
||||||
|
@ -46,13 +46,10 @@ class ConnectionField(Field):
|
||||||
return connection_type.from_list(resolved, args, context, info)
|
return connection_type.from_list(resolved, args, context, info)
|
||||||
|
|
||||||
def get_connection_type(self, node):
|
def get_connection_type(self, node):
|
||||||
connection_type = self.connection_type or Connection
|
return self.connection_type.for_node(node)
|
||||||
edge_type = self.get_edge_type(node)
|
|
||||||
return connection_type.for_node(node, edge_type=edge_type)
|
|
||||||
|
|
||||||
def get_edge_type(self, node):
|
def get_edge_type(self, node):
|
||||||
edge_type = self.edge_type or Edge
|
return self.edge_type.for_node(node)
|
||||||
return edge_type.for_node(node)
|
|
||||||
|
|
||||||
def get_type(self, schema):
|
def get_type(self, schema):
|
||||||
from graphene.relay.utils import is_node
|
from graphene.relay.utils import is_node
|
||||||
|
|
Loading…
Reference in New Issue
Block a user