TGViewer
Библиотека питониста | Python, Django, Flask Библиотека питониста | Python, Django, Flask @pyproglib · 37.3K subscribers
Post #7673 2.89K
🐍 Состояние типизации в Django к 2026

Django появился за 10 лет до того, как в Python стандартизировали аннотации типов, поэтому подружить их — задача не из легких.

Вот краткий срез того, как обстоят дела сегодня:

1️⃣ Золотой стандарт: django-stubs + mypy
Если вам нужна максимальная точность, это ваш выбор. Пакет поставляется с плагином для mypy, который «разбирает» динамическую магию Django.

Минус: Это медленно. Очень. На больших проектах mypy может работать минуты, что делает его неудобным для использования прямо в редакторе кода. Часто его оставляют только для CI.

2️⃣ Быстрые альтернативы: Pyright, Ty, Pyrefly
Эти чекеры работают за секунды, но не поддерживают плагины mypy. Итог — куча ложных срабатываний (false positives).

Типичная ошибка: Чекер не видит поле .id или связанные имена (related names).

Лайфхак: Вместо .id используйте .pk — инструменты обычно понимают его лучше. Или же явно определяйте id = models.AutoField(primary_key=True) в модели.

3️⃣ Новый подход: Django-Mantle
Интересная библиотека, которая предлагает вообще не работать с динамическими типами моделей напрямую. Вместо этого вы описываете attrs`-классы и используете их как типизированные DTO для данных из БД. Если логика работает с `BookmarkAttrs, а не с Bookmark(models.Model), проблем с типами не будет.

4️⃣ Проблема версий
Сторонние библиотеки типов (django-stubs/django-types) часто отстают от релизов Django. Например, Django 6.0 вышла 3 месяца назад, а полной поддержки типов для неё всё ещё нет.

Хорошие новости: управляющий совет Django одобрил внедрение типов в само ядро фреймворка! Также есть надежда на PEP-0827, который может добавить в Python новые возможности для типизации динамических структур без специальных плагинов.

🔛 Полный пост
  • ❤ 2
  • 👍 1
  • 👏 1
More from @pyproglib
  1. Sep 25, 2026🔥 Курс «ИИ для разработчиков» уже стартовал И мы решили открыть первое занятие всем — мож…
  2. Sep 20, 2026👻 94% токенов уходят не на код Анализ запусков показал: основная часть токенов уходит на…
  3. Sep 19, 2026📚Напоминаем про наш полный курс «Самоучитель по Python для начинающих» Мы написали и собр…
  4. Sep 15, 2026😭 Как не потратить недельный лимит AI-кодинга за три дня? Разберём на вебинаре, как трати…
  5. Sep 15, 2026⏱️ Справочник по Big-O в Python Для тех, кто хочет писать не просто работающий, а эффектив…
  6. Sep 14, 2026🤪 Если бы можно было задать один вопрос про AI в разработке — что бы вы спросили? Как выб…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →