Skip to content

Commit 21dffa4

Browse files
committed
Moved fields to a named group
1 parent fae376c commit 21dffa4

File tree

2 files changed

+19
-10
lines changed

2 files changed

+19
-10
lines changed

graphene/core/classtypes/base.py

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55

66
import six
77

8-
from ..exceptions import SkipField
98
from .options import Options
109

1110

@@ -82,6 +81,11 @@ def fields(self):
8281
def fields_map(self):
8382
return OrderedDict([(f.attname, f) for f in self.fields])
8483

84+
@property
85+
def fields_group_type(self):
86+
from ..types.field import FieldsGroupType
87+
return FieldsGroupType(*self.local_fields)
88+
8589

8690
class FieldsClassTypeMeta(ClassTypeMeta):
8791
options_class = FieldsOptions
@@ -124,11 +128,4 @@ class Meta:
124128

125129
@classmethod
126130
def fields_internal_types(cls, schema):
127-
fields = []
128-
for field in cls._meta.fields:
129-
try:
130-
fields.append((field.name, schema.T(field)))
131-
except SkipField:
132-
continue
133-
134-
return OrderedDict(fields)
131+
return schema.T(cls._meta.fields_group_type)

graphene/core/types/field.py

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,9 @@
88
from ..classtypes.base import FieldsClassType
99
from ..classtypes.inputobjecttype import InputObjectType
1010
from ..classtypes.mutation import Mutation
11+
from ..exceptions import SkipField
1112
from .argument import ArgumentsGroup, snake_case_args
12-
from .base import LazyType, NamedType, MountType, OrderedType
13+
from .base import LazyType, NamedType, MountType, OrderedType, GroupNamedType
1314
from .definitions import NonNull
1415

1516

@@ -146,3 +147,14 @@ def internal_type(self, schema):
146147
return GraphQLInputObjectField(
147148
schema.T(self.type),
148149
default_value=self.default, description=self.description)
150+
151+
152+
class FieldsGroupType(GroupNamedType):
153+
def internal_type(self, schema):
154+
fields = []
155+
for field in sorted(self.types):
156+
try:
157+
fields.append(self.get_named_type(schema, field))
158+
except SkipField:
159+
continue
160+
return OrderedDict(fields)

0 commit comments

Comments
 (0)