Как в Python type hints указать тип записей в Django QuerySet?

Возможно ли, используя Type Hints в Python, указать тип записей в Django QeurySet? Что-то типа QuerySet(SomeModel)?

Например, у нас есть модель:

class SomeModel(models.Model):
    smth = models.IntegerField()


и мы хотим передать как параметр в некую функцию QuerySet с записями этой модели:

def somefunc(rows: QuerySet):
    pass


Но как указать, что должен быть не просто QuerySet, а именно QuerySet с записями модели SomeModel? То есть если бы передавали не QuerySet, а list, то можно было бы сделать так:

def somefunc(rows: List[SomeModel]):
    pass


но как быть с QuerySet?
  • Вопрос задан
  • 2071 просмотр
Пригласить эксперта
Ответы на вопрос 2
На данный момент это невозможно.

Вот соответствующий тикет - https://github.com/python/mypy/issues/1310
Ответ написан
Комментировать
@sobolevn
Необходимо использовать `django-stubs`.

Внутри type stubs и собственные плагины для mypy, чтобы все работало корректно.

Туториал: https://sobolevn.me/2019/08/typechecking-django-and-drf
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы