1111from .utils import (
1212 get_field_description ,
1313 get_query_fields ,
14+ get_field_is_required ,
1415 ExecutorEnum ,
1516 sync_to_async ,
1617)
@@ -34,71 +35,86 @@ def convert_mongoengine_field(field, registry=None, executor: ExecutorEnum = Exe
3435@convert_mongoengine_field .register (mongoengine .URLField )
3536def convert_field_to_string (field , registry = None , executor : ExecutorEnum = ExecutorEnum .SYNC ):
3637 return graphene .String (
37- description = get_field_description (field , registry ), required = field .required
38+ description = get_field_description (field , registry ),
39+ required = get_field_is_required (field , registry ),
3840 )
3941
4042
4143@convert_mongoengine_field .register (mongoengine .UUIDField )
4244@convert_mongoengine_field .register (mongoengine .ObjectIdField )
4345def convert_field_to_id (field , registry = None , executor : ExecutorEnum = ExecutorEnum .SYNC ):
44- return graphene .ID (description = get_field_description (field , registry ), required = field .required )
46+ return graphene .ID (
47+ description = get_field_description (field , registry ),
48+ required = get_field_is_required (field , registry ),
49+ )
4550
4651
4752@convert_mongoengine_field .register (mongoengine .IntField )
4853@convert_mongoengine_field .register (mongoengine .LongField )
4954@convert_mongoengine_field .register (mongoengine .SequenceField )
5055def convert_field_to_int (field , registry = None , executor : ExecutorEnum = ExecutorEnum .SYNC ):
51- return graphene .Int (description = get_field_description (field , registry ), required = field .required )
56+ return graphene .Int (
57+ description = get_field_description (field , registry ),
58+ required = get_field_is_required (field , registry ),
59+ )
5260
5361
5462@convert_mongoengine_field .register (mongoengine .BooleanField )
5563def convert_field_to_boolean (field , registry = None , executor : ExecutorEnum = ExecutorEnum .SYNC ):
5664 return graphene .Boolean (
57- description = get_field_description (field , registry ), required = field .required
65+ description = get_field_description (field , registry ),
66+ required = get_field_is_required (field , registry ),
5867 )
5968
6069
6170@convert_mongoengine_field .register (mongoengine .FloatField )
6271def convert_field_to_float (field , registry = None , executor : ExecutorEnum = ExecutorEnum .SYNC ):
6372 return graphene .Float (
64- description = get_field_description (field , registry ), required = field .required
73+ description = get_field_description (field , registry ),
74+ required = get_field_is_required (field , registry ),
6575 )
6676
6777
6878@convert_mongoengine_field .register (mongoengine .Decimal128Field )
6979@convert_mongoengine_field .register (mongoengine .DecimalField )
7080def convert_field_to_decimal (field , registry = None , executor : ExecutorEnum = ExecutorEnum .SYNC ):
7181 return graphene .Decimal (
72- description = get_field_description (field , registry ), required = field .required
82+ description = get_field_description (field , registry ),
83+ required = get_field_is_required (field , registry ),
7384 )
7485
7586
7687@convert_mongoengine_field .register (mongoengine .DateTimeField )
7788def convert_field_to_datetime (field , registry = None , executor : ExecutorEnum = ExecutorEnum .SYNC ):
7889 return graphene .DateTime (
79- description = get_field_description (field , registry ), required = field .required
90+ description = get_field_description (field , registry ),
91+ required = get_field_is_required (field , registry ),
8092 )
8193
8294
8395@convert_mongoengine_field .register (mongoengine .DateField )
8496def convert_field_to_date (field , registry = None , executor : ExecutorEnum = ExecutorEnum .SYNC ):
8597 return graphene .Date (
86- description = get_field_description (field , registry ), required = field .required
98+ description = get_field_description (field , registry ),
99+ required = get_field_is_required (field , registry ),
87100 )
88101
89102
90103@convert_mongoengine_field .register (mongoengine .DictField )
91104@convert_mongoengine_field .register (mongoengine .MapField )
92105def convert_field_to_jsonstring (field , registry = None , executor : ExecutorEnum = ExecutorEnum .SYNC ):
93- return JSONString (description = get_field_description (field , registry ), required = field .required )
106+ return JSONString (
107+ description = get_field_description (field , registry ),
108+ required = get_field_is_required (field , registry ),
109+ )
94110
95111
96112@convert_mongoengine_field .register (mongoengine .PointField )
97113def convert_point_to_field (field , registry = None , executor : ExecutorEnum = ExecutorEnum .SYNC ):
98114 return graphene .Field (
99115 advanced_types .PointFieldType ,
100116 description = get_field_description (field , registry ),
101- required = field . required ,
117+ required = get_field_is_required ( field , registry ) ,
102118 )
103119
104120
@@ -107,7 +123,7 @@ def convert_polygon_to_field(field, registry=None, executor: ExecutorEnum = Exec
107123 return graphene .Field (
108124 advanced_types .PolygonFieldType ,
109125 description = get_field_description (field , registry ),
110- required = field . required ,
126+ required = get_field_is_required ( field , registry ) ,
111127 )
112128
113129
@@ -116,7 +132,7 @@ def convert_multipolygon_to_field(field, registry=None, executor: ExecutorEnum =
116132 return graphene .Field (
117133 advanced_types .MultiPolygonFieldType ,
118134 description = get_field_description (field , registry ),
119- required = field . required ,
135+ required = get_field_is_required ( field , registry ) ,
120136 )
121137
122138
@@ -125,7 +141,7 @@ def convert_file_to_field(field, registry=None, executor: ExecutorEnum = Executo
125141 return graphene .Field (
126142 advanced_types .FileFieldType ,
127143 description = get_field_description (field , registry ),
128- required = field . required ,
144+ required = get_field_is_required ( field , registry ) ,
129145 )
130146
131147
@@ -298,15 +314,15 @@ async def reference_resolver_async(root, *args, **kwargs):
298314 return graphene .List (
299315 base_type ._type ,
300316 description = get_field_description (field , registry ),
301- required = field . required ,
317+ required = get_field_is_required ( field , registry ) ,
302318 resolver = reference_resolver
303319 if executor == ExecutorEnum .SYNC
304320 else reference_resolver_async ,
305321 )
306322 return graphene .List (
307323 base_type ._type ,
308324 description = get_field_description (field , registry ),
309- required = field . required ,
325+ required = get_field_is_required ( field , registry ) ,
310326 )
311327 if isinstance (base_type , (graphene .Dynamic )):
312328 base_type = base_type .get_type ()
@@ -327,7 +343,7 @@ async def reference_resolver_async(root, *args, **kwargs):
327343 return graphene .List (
328344 base_type ,
329345 description = get_field_description (field , registry ),
330- required = field . required ,
346+ required = get_field_is_required ( field , registry ) ,
331347 )
332348
333349
@@ -491,7 +507,7 @@ async def lazy_reference_resolver_async(root, *args, **kwargs):
491507 field_resolver = None
492508 required = False
493509 if field .db_field is not None :
494- required = field . required
510+ required = get_field_is_required ( field , registry )
495511 resolver_function = getattr (
496512 registry .get_type_for_model (field .owner_document , executor = executor ),
497513 "resolve_" + field .db_field ,
@@ -516,7 +532,7 @@ async def lazy_reference_resolver_async(root, *args, **kwargs):
516532 field_resolver = None
517533 required = False
518534 if field .db_field is not None :
519- required = field . required
535+ required = get_field_is_required ( field , registry )
520536 resolver_function = getattr (
521537 registry .get_type_for_model (field .owner_document , executor = executor ),
522538 "resolve_" + field .db_field ,
@@ -658,12 +674,12 @@ def dynamic_type():
658674 return graphene .Field (
659675 _type ,
660676 description = get_field_description (field , registry ),
661- required = field . required ,
677+ required = get_field_is_required ( field , registry ) ,
662678 )
663679 field_resolver = None
664680 required = False
665681 if field .db_field is not None :
666- required = field . required
682+ required = get_field_is_required ( field , registry )
667683 resolver_function = getattr (
668684 registry .get_type_for_model (field .owner_document , executor = executor ),
669685 "resolve_" + field .db_field ,
@@ -760,7 +776,7 @@ def dynamic_type():
760776 field_resolver = None
761777 required = False
762778 if field .db_field is not None :
763- required = field . required
779+ required = get_field_is_required ( field , registry )
764780 resolver_function = getattr (
765781 registry .get_type_for_model (field .owner_document , executor = executor ),
766782 "resolve_" + field .db_field ,
@@ -790,5 +806,5 @@ def convert_field_to_enum(field, registry=None, executor: ExecutorEnum = Executo
790806 return graphene .Field (
791807 _type ,
792808 description = get_field_description (field , registry ),
793- required = field . required ,
809+ required = get_field_is_required ( field , registry ) ,
794810 )
0 commit comments