@@ -393,10 +393,12 @@ def reference_resolver(root, *args, **kwargs):
393393 for key , values in _type ._meta .filter_fields .items ():
394394 for each in values :
395395 filter_args .append (key + "__" + each )
396- querying_types = list (get_query_fields (args [0 ]).keys ())
397- if _type .__name__ in querying_types :
396+ querying_union_types = get_queried_union_types (
397+ info = args [0 ], valid_gql_types = registry ._registry_string_map .keys ()
398+ )
399+ if _type .__name__ in querying_union_types :
398400 queried_fields = list ()
399- for each in get_query_fields ( args [ 0 ]) [_type ._meta .name ].keys ():
401+ for each in querying_union_types [_type ._meta .name ].keys ():
400402 item = to_snake_case (each )
401403 if item in document ._fields_ordered + tuple (filter_args ):
402404 queried_fields .append (item )
@@ -418,14 +420,16 @@ def lazy_reference_resolver(root, *args, **kwargs):
418420 document_field_type = registry .get_type_for_model (
419421 document .document_type , executor = executor
420422 )
421- querying_types = list (get_query_fields (args [0 ]).keys ())
423+ querying_union_types = get_queried_union_types (
424+ info = args [0 ], valid_gql_types = registry ._registry_string_map .keys ()
425+ )
422426 filter_args = list ()
423427 if document_field_type ._meta .filter_fields :
424428 for key , values in document_field_type ._meta .filter_fields .items ():
425429 for each in values :
426430 filter_args .append (key + "__" + each )
427- if document_field_type ._meta .name in querying_types :
428- for each in get_query_fields ( args [ 0 ]) [document_field_type ._meta .name ].keys ():
431+ if document_field_type ._meta .name in querying_union_types :
432+ for each in querying_union_types [document_field_type ._meta .name ].keys ():
429433 item = to_snake_case (each )
430434 if item in document .document_type ._fields_ordered + tuple (filter_args ):
431435 queried_fields .append (item )
@@ -453,10 +457,12 @@ async def reference_resolver_async(root, *args, **kwargs):
453457 for key , values in _type ._meta .filter_fields .items ():
454458 for each in values :
455459 filter_args .append (key + "__" + each )
456- querying_types = list (get_query_fields (args [0 ]).keys ())
457- if _type .__name__ in querying_types :
460+ querying_union_types = get_queried_union_types (
461+ info = args [0 ], valid_gql_types = registry ._registry_string_map .keys ()
462+ )
463+ if _type .__name__ in querying_union_types :
458464 queried_fields = list ()
459- for each in get_query_fields ( args [ 0 ]) [_type ._meta .name ].keys ():
465+ for each in querying_union_types [_type ._meta .name ].keys ():
460466 item = to_snake_case (each )
461467 if item in document ._fields_ordered + tuple (filter_args ):
462468 queried_fields .append (item )
@@ -478,14 +484,16 @@ async def lazy_reference_resolver_async(root, *args, **kwargs):
478484 document_field_type = registry .get_type_for_model (
479485 document .document_type , executor = executor
480486 )
481- querying_types = list (get_query_fields (args [0 ]).keys ())
487+ querying_union_types = get_queried_union_types (
488+ info = args [0 ], valid_gql_types = registry ._registry_string_map .keys ()
489+ )
482490 filter_args = list ()
483491 if document_field_type ._meta .filter_fields :
484492 for key , values in document_field_type ._meta .filter_fields .items ():
485493 for each in values :
486494 filter_args .append (key + "__" + each )
487- if document_field_type ._meta .name in querying_types :
488- for each in get_query_fields ( args [ 0 ]) [document_field_type ._meta .name ].keys ():
495+ if document_field_type ._meta .name in querying_union_types :
496+ for each in querying_union_types [document_field_type ._meta .name ].keys ():
489497 item = to_snake_case (each )
490498 if item in document .document_type ._fields_ordered + tuple (filter_args ):
491499 queried_fields .append (item )
0 commit comments