@@ -24,49 +24,45 @@ def convert_serializer_to_input_type(serializer_class):
24
24
25
25
26
26
@singledispatch
27
- def convert_serializer_field (field ):
27
+ def get_graphene_type_from_serializer_field (field ):
28
28
raise ImproperlyConfigured (
29
29
"Don't know how to convert the serializer field %s (%s) "
30
30
"to Graphene type" % (field , field .__class__ )
31
31
)
32
32
33
33
34
- def required_if_input_and_required ( func ):
34
+ def convert_serializer_field ( field , is_input = True ):
35
35
"""
36
- Marks the field as required if we are creating an input type
36
+ Converts a django rest frameworks field to a graphql field
37
+ and marks the field as required if we are creating an input type
37
38
and the field itself is required
38
39
"""
39
40
40
- def wrap (field , is_input = True ):
41
- graphql_type = func (field )
41
+ # TODO: sub types? kwargs
42
42
43
- return graphql_type (
44
- description = field .help_text , required = is_input and field .required
45
- )
43
+ graphql_type = get_graphene_type_from_serializer_field (field )
46
44
47
- return wrap
45
+ return graphql_type (
46
+ description = field .help_text , required = is_input and field .required
47
+ )
48
48
49
49
50
- @convert_serializer_field .register (serializers .Field )
51
- @required_if_input_and_required
50
+ @get_graphene_type_from_serializer_field .register (serializers .Field )
52
51
def convert_serializer_field_to_string (field ):
53
52
return graphene .String
54
53
55
54
56
- @convert_serializer_field .register (serializers .IntegerField )
57
- @required_if_input_and_required
55
+ @get_graphene_type_from_serializer_field .register (serializers .IntegerField )
58
56
def convert_serializer_field_to_int (field ):
59
57
return graphene .Int
60
58
61
59
62
- @convert_serializer_field .register (serializers .BooleanField )
63
- @required_if_input_and_required
60
+ @get_graphene_type_from_serializer_field .register (serializers .BooleanField )
64
61
def convert_serializer_field_to_bool (field ):
65
62
return graphene .Boolean
66
63
67
64
68
- @convert_serializer_field .register (serializers .FloatField )
69
- @convert_serializer_field .register (serializers .DecimalField )
70
- @required_if_input_and_required
65
+ @get_graphene_type_from_serializer_field .register (serializers .FloatField )
66
+ @get_graphene_type_from_serializer_field .register (serializers .DecimalField )
71
67
def convert_serializer_field_to_float (field ):
72
68
return graphene .Float
0 commit comments