@@ -237,12 +237,14 @@ def reference_resolver(root, *args, **kwargs):
237
237
238
238
if isinstance (field , mongoengine .GenericReferenceField ):
239
239
field_resolver = None
240
+ required = False
240
241
if field .db_field is not None :
242
+ required = field .required
241
243
resolver_function = getattr (_union , "resolve_" + field .db_field , None )
242
244
if resolver_function and callable (resolver_function ):
243
245
field_resolver = resolver_function
244
246
return graphene .Field (_union , resolver = field_resolver if field_resolver else reference_resolver ,
245
- description = get_field_description (field , registry ))
247
+ description = get_field_description (field , registry ), required = required )
246
248
247
249
return graphene .Field (_union )
248
250
@@ -281,16 +283,18 @@ def dynamic_type():
281
283
return graphene .Field (_type ,
282
284
description = get_field_description (field , registry ))
283
285
field_resolver = None
286
+ required = False
284
287
if field .db_field is not None :
288
+ required = field .required
285
289
resolver_function = getattr (_type , "resolve_" + field .db_field , None )
286
290
if resolver_function and callable (resolver_function ):
287
291
field_resolver = resolver_function
288
292
if isinstance (field , mongoengine .ReferenceField ):
289
293
return graphene .Field (_type , resolver = field_resolver if field_resolver else reference_resolver ,
290
- description = get_field_description (field , registry ))
294
+ description = get_field_description (field , registry ), required = required )
291
295
else :
292
- return graphene .Field (_type , resolver = field_resolver if field_resolver else cached_reference_resolver () ,
293
- description = get_field_description (field , registry ))
296
+ return graphene .Field (_type , resolver = field_resolver if field_resolver else cached_reference_resolver ,
297
+ description = get_field_description (field , registry ), required = required )
294
298
295
299
return graphene .Dynamic (dynamic_type )
296
300
@@ -314,14 +318,16 @@ def dynamic_type():
314
318
if not _type :
315
319
return None
316
320
field_resolver = None
321
+ required = False
317
322
if field .db_field is not None :
323
+ required = field .required
318
324
resolver_function = getattr (_type , "resolve_" + field .db_field , None )
319
325
if resolver_function and callable (resolver_function ):
320
326
field_resolver = resolver_function
321
327
return graphene .Field (
322
328
_type ,
323
329
resolver = field_resolver if field_resolver else lazy_resolver ,
324
- description = get_field_description (field , registry ),
330
+ description = get_field_description (field , registry ), required = required ,
325
331
)
326
332
327
333
return graphene .Dynamic (dynamic_type )
0 commit comments