mirror of
https://github.com/graphql-python/graphene.git
synced 2025-02-09 08:00:39 +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
|
import six
|
||||||
|
|
||||||
from ..exceptions import SkipField
|
|
||||||
from .options import Options
|
from .options import Options
|
||||||
|
|
||||||
|
|
||||||
|
@ -82,6 +81,11 @@ class FieldsOptions(Options):
|
||||||
def fields_map(self):
|
def fields_map(self):
|
||||||
return OrderedDict([(f.attname, f) for f in self.fields])
|
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):
|
class FieldsClassTypeMeta(ClassTypeMeta):
|
||||||
options_class = FieldsOptions
|
options_class = FieldsOptions
|
||||||
|
@ -124,11 +128,4 @@ class FieldsClassType(six.with_metaclass(FieldsClassTypeMeta, ClassType)):
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def fields_internal_types(cls, schema):
|
def fields_internal_types(cls, schema):
|
||||||
fields = []
|
return schema.T(cls._meta.fields_group_type)
|
||||||
for field in cls._meta.fields:
|
|
||||||
try:
|
|
||||||
fields.append((field.name, schema.T(field)))
|
|
||||||
except SkipField:
|
|
||||||
continue
|
|
||||||
|
|
||||||
return OrderedDict(fields)
|
|
||||||
|
|
|
@ -8,8 +8,9 @@ from ...utils import to_camel_case
|
||||||
from ..classtypes.base import FieldsClassType
|
from ..classtypes.base import FieldsClassType
|
||||||
from ..classtypes.inputobjecttype import InputObjectType
|
from ..classtypes.inputobjecttype import InputObjectType
|
||||||
from ..classtypes.mutation import Mutation
|
from ..classtypes.mutation import Mutation
|
||||||
|
from ..exceptions import SkipField
|
||||||
from .argument import ArgumentsGroup, snake_case_args
|
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
|
from .definitions import NonNull
|
||||||
|
|
||||||
|
|
||||||
|
@ -146,3 +147,14 @@ class InputField(NamedType, OrderedType):
|
||||||
return GraphQLInputObjectField(
|
return GraphQLInputObjectField(
|
||||||
schema.T(self.type),
|
schema.T(self.type),
|
||||||
default_value=self.default, description=self.description)
|
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