Add support for dict field

This commit is contained in:
Patrick Arminio 2017-06-26 14:19:55 +01:00
parent f747102e35
commit 68f6281ec8
3 changed files with 17 additions and 0 deletions

View File

@ -4,6 +4,7 @@ from rest_framework import serializers
import graphene
from ..utils import import_single_dispatch
from .types import DictType
singledispatch = import_single_dispatch()
@ -80,3 +81,8 @@ def convert_serializer_field_to_list(field, is_input=True):
child_type = get_graphene_type_from_serializer_field(field.child)
return (graphene.List, child_type)
@get_graphene_type_from_serializer_field.register(serializers.DictField)
def convert_serializer_field_to_dict(field):
return DictType

View File

@ -5,6 +5,7 @@ from py.test import raises
import graphene
from ..serializer_converter import convert_serializer_field
from ..types import DictType
def _get_type(rest_framework_field, **kwargs):
@ -115,3 +116,7 @@ def test_should_list_convert_to_list():
field_b = assert_conversion(StringListField, graphene.List)
assert field_b.of_type == graphene.String
def test_should_dict_convert_dict():
assert_conversion(serializers.DictField, DictType)

View File

@ -1,6 +1,12 @@
import graphene
from graphene.types.unmountedtype import UnmountedType
class ErrorType(graphene.ObjectType):
field = graphene.String()
messages = graphene.List(graphene.String)
class DictType(UnmountedType):
key = graphene.String()
value = graphene.String()