Skip to content

Commit 1f548f1

Browse files
committed
Fixed default query value in SQLAlchemyConnectionField. Fixed #133
1 parent 21ec116 commit 1f548f1

File tree

2 files changed

+24
-6
lines changed

2 files changed

+24
-6
lines changed

graphene/contrib/sqlalchemy/fields.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,21 +7,24 @@
77
from .utils import get_type_for_model, maybe_query, get_query
88

99

10+
class DefaultQuery(object):
11+
pass
12+
13+
1014
class SQLAlchemyConnectionField(ConnectionField):
1115

1216
def __init__(self, *args, **kwargs):
17+
kwargs['default'] = kwargs.pop('default', lambda: DefaultQuery)
1318
return super(SQLAlchemyConnectionField, self).__init__(*args, **kwargs)
1419

1520
@property
1621
def model(self):
1722
return self.type._meta.model
1823

19-
def get_query(self, resolved_query, args, info):
20-
return resolved_query if resolved_query is not None else get_query(self.model, info)
21-
2224
def from_list(self, connection_type, resolved, args, info):
23-
query = self.get_query(resolved, args, info)
24-
query = maybe_query(query)
25+
if resolved is DefaultQuery:
26+
resolved = get_query(self.model, info)
27+
query = maybe_query(resolved)
2528
return super(SQLAlchemyConnectionField, self).from_list(connection_type, query, args, info)
2629

2730

graphene/contrib/sqlalchemy/tests/test_query.py

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import graphene
44
from graphene import relay
5-
from graphene.contrib.sqlalchemy import SQLAlchemyObjectType, SQLAlchemyNode
5+
from graphene.contrib.sqlalchemy import SQLAlchemyObjectType, SQLAlchemyNode, SQLAlchemyConnectionField
66
from sqlalchemy import create_engine
77
from sqlalchemy.orm import scoped_session, sessionmaker
88

@@ -115,6 +115,7 @@ class Query(graphene.ObjectType):
115115
node = relay.NodeField()
116116
reporter = graphene.Field(ReporterNode)
117117
article = graphene.Field(ArticleNode)
118+
all_articles = SQLAlchemyConnectionField(ArticleNode)
118119

119120
def resolve_reporter(self, *args, **kwargs):
120121
return Reporter(id=1, first_name='ABA', last_name='X')
@@ -137,6 +138,13 @@ def resolve_article(self, *args, **kwargs):
137138
lastName,
138139
email
139140
}
141+
allArticles {
142+
edges {
143+
node {
144+
headline
145+
}
146+
}
147+
}
140148
myArticle: node(id:"QXJ0aWNsZU5vZGU6MQ==") {
141149
id
142150
... on ReporterNode {
@@ -162,6 +170,13 @@ def resolve_article(self, *args, **kwargs):
162170
}]
163171
},
164172
},
173+
'allArticles': {
174+
'edges': [{
175+
'node': {
176+
'headline': 'Hi!'
177+
}
178+
}]
179+
},
165180
'myArticle': {
166181
'id': 'QXJ0aWNsZU5vZGU6MQ==',
167182
'headline': 'Hi!'

0 commit comments

Comments
 (0)