@@ -141,8 +141,6 @@ def get_field_lookup_exact_type(
141141 ) -> MypyType :
142142 if isinstance (field , (RelatedField , ForeignObjectRel )):
143143 related_model_cls = self .get_field_related_model_cls (field )
144- if related_model_cls is None :
145- return AnyType (TypeOfAny .from_error )
146144 primary_key_field = self .get_primary_key_field (related_model_cls )
147145 primary_key_type = self .get_field_get_type (api , primary_key_field , method = "init" )
148146
@@ -225,9 +223,6 @@ def get_field_set_type_from_model_type_info(info: Optional[TypeInfo], field_name
225223 continue
226224
227225 related_model = self .get_field_related_model_cls (field )
228- if related_model is None :
229- expected_types [field_name ] = AnyType (TypeOfAny .from_error )
230- continue
231226
232227 if related_model ._meta .proxy_for_model is not None :
233228 related_model = related_model ._meta .proxy_for_model
@@ -327,8 +322,6 @@ def get_field_get_type(
327322 is_nullable = self .get_field_nullability (field , method )
328323 if isinstance (field , RelatedField ):
329324 related_model_cls = self .get_field_related_model_cls (field )
330- if related_model_cls is None :
331- return AnyType (TypeOfAny .from_error )
332325
333326 if method in ("values" , "values_list" ):
334327 primary_key_field = self .get_primary_key_field (related_model_cls )
@@ -354,7 +347,7 @@ def get_field_related_model_cls(self, field: Union["RelatedField[Any, Any]", For
354347 related_model_cls = field .model
355348 elif "." not in related_model_cls :
356349 # same file model
357- related_model_fullname = field .model .__module__ + "." + related_model_cls
350+ related_model_fullname = f" { field .model .__module__ } . { related_model_cls } "
358351 related_model_cls = self .get_model_class_by_fullname (related_model_fullname )
359352 if related_model_cls is None :
360353 raise UnregisteredModelError
@@ -368,7 +361,7 @@ def get_field_related_model_cls(self, field: Union["RelatedField[Any, Any]", For
368361
369362 def _resolve_field_from_parts (
370363 self , field_parts : Iterable [str ], model_cls : Type [Model ]
371- ) -> Union ["Field[Any, Any]" , ForeignObjectRel , None ]:
364+ ) -> Union ["Field[Any, Any]" , ForeignObjectRel ]:
372365 currently_observed_model = model_cls
373366 field : Union ["Field[Any, Any]" , ForeignObjectRel , GenericForeignKey , None ] = None
374367 for field_part in field_parts :
@@ -378,19 +371,13 @@ def _resolve_field_from_parts(
378371
379372 field = currently_observed_model ._meta .get_field (field_part )
380373 if isinstance (field , RelatedField ):
381- related_model = self .get_field_related_model_cls (field )
382- if related_model is None :
383- return None
384- currently_observed_model = related_model
374+ currently_observed_model = self .get_field_related_model_cls (field )
385375 model_name = currently_observed_model ._meta .model_name
386376 if model_name is not None and field_part == (model_name + "_id" ):
387377 field = self .get_primary_key_field (currently_observed_model )
388378
389379 if isinstance (field , ForeignObjectRel ):
390- related_model = self .get_field_related_model_cls (field )
391- if related_model is None :
392- return None
393- currently_observed_model = related_model
380+ currently_observed_model = self .get_field_related_model_cls (field )
394381
395382 # Guaranteed by `query.solve_lookup_type` before.
396383 assert isinstance (field , (Field , ForeignObjectRel ))
@@ -422,13 +409,10 @@ def solve_lookup_type(
422409 if len (query_parts ) == 1 :
423410 return [], [query_parts [0 ]], False
424411
425- related_model = None
426- if isinstance (field , (RelatedField , ForeignObjectRel )):
427- related_model = self .get_field_related_model_cls (field )
428-
429- if related_model is None :
412+ if not isinstance (field , (RelatedField , ForeignObjectRel )):
430413 return None
431414
415+ related_model = self .get_field_related_model_cls (field )
432416 sub_query = Query (related_model ).solve_lookup_type ("__" .join (query_parts [1 :]))
433417 entire_query_parts = [query_parts [0 ], * sub_query [1 ]]
434418 return sub_query [0 ], entire_query_parts , sub_query [2 ]
@@ -460,8 +444,6 @@ def resolve_lookup_expected_type(self, ctx: MethodContext, model_cls: Type[Model
460444 return AnyType (TypeOfAny .explicit )
461445
462446 field = self ._resolve_field_from_parts (field_parts , model_cls )
463- if field is None :
464- return AnyType (TypeOfAny .from_error )
465447
466448 lookup_cls = None
467449 if lookup_parts :
0 commit comments