1
1
from django .db import models
2
2
3
- from ...core .types .scalars import ID , Boolean , Float , Int , String
4
3
from ...core .classtypes .enum import Enum
4
+ from ...core .types .custom_scalars import DateTime , JSONString
5
+ from ...core .types .definitions import List
6
+ from ...core .types .scalars import ID , Boolean , Float , Int , String
5
7
from ...utils import to_const
6
- from .compat import RelatedObject , UUIDField
8
+ from .compat import (ArrayField , HStoreField , JSONField , RangeField ,
9
+ RelatedObject , UUIDField )
7
10
from .utils import get_related_model , import_single_dispatch
8
11
9
12
singledispatch = import_single_dispatch ()
@@ -30,13 +33,13 @@ def convert_django_field(field):
30
33
(field , field .__class__ ))
31
34
32
35
33
- @convert_django_field .register (models .DateField )
34
36
@convert_django_field .register (models .CharField )
35
37
@convert_django_field .register (models .TextField )
36
38
@convert_django_field .register (models .EmailField )
37
39
@convert_django_field .register (models .SlugField )
38
40
@convert_django_field .register (models .URLField )
39
41
@convert_django_field .register (models .GenericIPAddressField )
42
+ @convert_django_field .register (models .FileField )
40
43
@convert_django_field .register (UUIDField )
41
44
def convert_field_to_string (field ):
42
45
return String (description = field .help_text )
@@ -72,6 +75,11 @@ def convert_field_to_float(field):
72
75
return Float (description = field .help_text )
73
76
74
77
78
+ @convert_django_field .register (models .DateField )
79
+ def convert_date_to_string (field ):
80
+ return DateTime (description = field .help_text )
81
+
82
+
75
83
@convert_django_field .register (models .ManyToManyField )
76
84
@convert_django_field .register (models .ManyToOneRel )
77
85
@convert_django_field .register (models .ManyToManyRel )
@@ -94,3 +102,21 @@ def convert_relatedfield_to_djangomodel(field):
94
102
def convert_field_to_djangomodel (field ):
95
103
from .fields import DjangoModelField
96
104
return DjangoModelField (get_related_model (field ), description = field .help_text )
105
+
106
+
107
+ @convert_django_field .register (ArrayField )
108
+ def convert_postgres_array_to_list (field ):
109
+ base_type = convert_django_field (field .base_field )
110
+ return List (base_type , description = field .help_text )
111
+
112
+
113
+ @convert_django_field .register (HStoreField )
114
+ @convert_django_field .register (JSONField )
115
+ def convert_posgres_field_to_string (field ):
116
+ return JSONString (description = field .help_text )
117
+
118
+
119
+ @convert_django_field .register (RangeField )
120
+ def convert_posgres_range_to_string (field ):
121
+ inner_type = convert_django_field (field .base_field )
122
+ return List (inner_type , description = field .help_text )
0 commit comments