|
4 | 4 | from ...core.types.definitions import List
|
5 | 5 | from ...relay import ConnectionField
|
6 | 6 | from ...relay.utils import is_node
|
7 |
| -from .utils import get_type_for_model |
| 7 | +from .utils import get_type_for_model, maybe_query, get_query |
8 | 8 |
|
9 | 9 |
|
10 | 10 | class SQLAlchemyConnectionField(ConnectionField):
|
11 | 11 |
|
12 | 12 | def __init__(self, *args, **kwargs):
|
13 |
| - self.session = kwargs.pop('session', None) |
14 | 13 | return super(SQLAlchemyConnectionField, self).__init__(*args, **kwargs)
|
15 | 14 |
|
16 | 15 | @property
|
17 | 16 | def model(self):
|
18 | 17 | return self.type._meta.model
|
19 | 18 |
|
20 |
| - def get_session(self, args, info): |
21 |
| - return self.session |
22 |
| - |
23 | 19 | def get_query(self, resolved_query, args, info):
|
24 |
| - self.get_session(args, info) |
25 |
| - return resolved_query |
| 20 | + return resolved_query or get_query(self.model, info) |
26 | 21 |
|
27 | 22 | def from_list(self, connection_type, resolved, args, info):
|
28 |
| - qs = self.get_query(resolved, args, info) |
29 |
| - return super(SQLAlchemyConnectionField, self).from_list(connection_type, qs, args, info) |
| 23 | + query = self.get_query(resolved, args, info) |
| 24 | + query = maybe_query(query) |
| 25 | + return super(SQLAlchemyConnectionField, self).from_list(connection_type, query, args, info) |
30 | 26 |
|
31 | 27 |
|
32 | 28 | class ConnectionOrListField(Field):
|
|
0 commit comments