one more edge case for values()

This commit is contained in:
Maxim Kurnikov
2019-07-18 04:02:32 +03:00
parent 4f935edd47
commit bfa77efef5
2 changed files with 5 additions and 2 deletions

View File

@@ -106,7 +106,7 @@ class DjangoLookupsContext:
def __init__(self, django_context: 'DjangoContext'):
self.django_context = django_context
def resolve_lookup(self, model_cls: Type[Model], lookup: str) -> Optional[Field]:
def resolve_lookup(self, model_cls: Type[Model], lookup: str) -> Field:
query = Query(model_cls)
lookup_parts, field_parts, is_expression = query.solve_lookup_type(lookup)
if lookup_parts:

View File

@@ -153,8 +153,11 @@ def resolve_field_lookups(lookup_exprs: Sequence[Expression], ctx: Union[Functio
def extract_proper_type_queryset_values(ctx: MethodContext, django_context: DjangoContext) -> MypyType:
# queryset method
assert isinstance(ctx.type, Instance)
assert isinstance(ctx.type.args[0], Instance)
# if queryset of non-instance type
if not isinstance(ctx.type.args[0], Instance):
return AnyType(TypeOfAny.from_omitted_generics)
model_type = ctx.type.args[0]
model_cls = django_context.get_model_class_by_fullname(model_type.type.fullname())