mirror of
https://github.com/graphql-python/graphene.git
synced 2025-02-08 23:50:38 +03:00
Moved fields to a named group
This commit is contained in:
parent
fae376cbb0
commit
21dffa4aa8
|
@ -5,7 +5,6 @@ from collections import OrderedDict
|
|||
|
||||
import six
|
||||
|
||||
from ..exceptions import SkipField
|
||||
from .options import Options
|
||||
|
||||
|
||||
|
@ -82,6 +81,11 @@ class FieldsOptions(Options):
|
|||
def fields_map(self):
|
||||
return OrderedDict([(f.attname, f) for f in self.fields])
|
||||
|
||||
@property
|
||||
def fields_group_type(self):
|
||||
from ..types.field import FieldsGroupType
|
||||
return FieldsGroupType(*self.local_fields)
|
||||
|
||||
|
||||
class FieldsClassTypeMeta(ClassTypeMeta):
|
||||
options_class = FieldsOptions
|
||||
|
@ -124,11 +128,4 @@ class FieldsClassType(six.with_metaclass(FieldsClassTypeMeta, ClassType)):
|
|||
|
||||
@classmethod
|
||||
def fields_internal_types(cls, schema):
|
||||
fields = []
|
||||
for field in cls._meta.fields:
|
||||
try:
|
||||
fields.append((field.name, schema.T(field)))
|
||||
except SkipField:
|
||||
continue
|
||||
|
||||
return OrderedDict(fields)
|
||||
return schema.T(cls._meta.fields_group_type)
|
||||
|
|
|
@ -8,8 +8,9 @@ from ...utils import to_camel_case
|
|||
from ..classtypes.base import FieldsClassType
|
||||
from ..classtypes.inputobjecttype import InputObjectType
|
||||
from ..classtypes.mutation import Mutation
|
||||
from ..exceptions import SkipField
|
||||
from .argument import ArgumentsGroup, snake_case_args
|
||||
from .base import LazyType, NamedType, MountType, OrderedType
|
||||
from .base import LazyType, NamedType, MountType, OrderedType, GroupNamedType
|
||||
from .definitions import NonNull
|
||||
|
||||
|
||||
|
@ -146,3 +147,14 @@ class InputField(NamedType, OrderedType):
|
|||
return GraphQLInputObjectField(
|
||||
schema.T(self.type),
|
||||
default_value=self.default, description=self.description)
|
||||
|
||||
|
||||
class FieldsGroupType(GroupNamedType):
|
||||
def internal_type(self, schema):
|
||||
fields = []
|
||||
for field in sorted(self.types):
|
||||
try:
|
||||
fields.append(self.get_named_type(schema, field))
|
||||
except SkipField:
|
||||
continue
|
||||
return OrderedDict(fields)
|
||||
|
|
Loading…
Reference in New Issue
Block a user