add proper generic support for get_object_or_404/get_list_or_404, fixes #22

This commit is contained in:
Maxim Kurnikov
2019-02-13 14:39:52 +03:00
parent 563c0add5e
commit 2720b74242
3 changed files with 25 additions and 8 deletions

View File

@@ -136,4 +136,19 @@ class AbstractBase2(models.Model):
class Child(AbstractBase1, AbstractBase2):
pass
[out]
[CASE get_object_or_404_returns_proper_types]
from django.shortcuts import get_object_or_404, get_list_or_404
from django.db import models
class MyModel(models.Model):
pass
reveal_type(get_object_or_404(MyModel)) # E: Revealed type is 'main.MyModel*'
reveal_type(get_object_or_404(MyModel.objects)) # E: Revealed type is 'main.MyModel*'
reveal_type(get_object_or_404(MyModel.objects.get_queryset())) # E: Revealed type is 'main.MyModel*'
reveal_type(get_list_or_404(MyModel)) # E: Revealed type is 'builtins.list[main.MyModel*]'
reveal_type(get_list_or_404(MyModel.objects)) # E: Revealed type is 'builtins.list[main.MyModel*]'
reveal_type(get_list_or_404(MyModel.objects.get_queryset())) # E: Revealed type is 'builtins.list[main.MyModel*]'
[out]