Я использую Джанго/ДРФ. Я хочу написать Python с проверкой типов. Я тоже хочу линтинг.
Структура модели Django включает создание класса менеджера для каждой модели и назначение экземпляра класса менеджера objects
члену модели.
Поскольку я использую аннотации типов, методы класса менеджера теперь также включают ссылку на модель. Это приводит к тому, что flake8 сообщает об ошибке в одном или другом.
Вот пример:
class UserManager:
def create_user(email: str) -> User:
... ^^^^ [flake8] F821: undefined name 'User'
class User:
objects = UserManager()
И если я переверну их, я получу:
class User:
objects = UserManager()
^^^^^^^^^^^ [flake8] F821: undefined name 'UserManager'
class UserManager:
def create_user(email: str) -> User:
...
Что люди делают, чтобы написать типизированный код Django?