NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #1382 most downloaded on PyPI
Mypy stubs for Django
Last release 4 days ago
14 Sep 2026
Ships fairly regularly
a new release about every 3 weeks
Most releases are documented
notes for 51 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
8 years old
84 releases · first in 2019
Support for filter/get/exclude arguments typechecking
New features
filter/get/exclude arguments typecheckingModel classesdjango.contrib.auth model classesPYTHONPATH = ${pwd}:$PYTHONPATH anymore for mypy executionand lots of bugfixes and stub improvements
QuerySet[MyModel] annotation should be supported by the Pycharm IDE now
QuerySet[MyModel] annotation should be supported by the Pycharm IDE nowOne column per quarter.
Fix crash with QuerySet subclasses and values()
QuerySet subclasses and values()Add support for values_list("foreign_key_id", flat=True) to produce a Collection[int]
psycopg2 dependencyvalues_list("foreign_key_id", flat=True) to produce a Collection[int]All previous config option are dropped, see https://github.com/typeddjango/django-stubs#warning-all-configuration-from-pre-100-versions-is-dropped-use
All previous config option are dropped, see https://github.com/typeddjango/django-stubs#warning-all-configuration-from-pre-100-versions-is-dropped-use-one-below for the new configuration of the plugin and some release details
Proper release for 0.12.0 changes.
Proper release for 0.12.0 changes.
Fix compatibility with mypy==0.700
ignore_missing_model_attributes flag to control this behaviourFix weird module 'mypy' has no attribute 'constraints' crash
module 'mypy' has no attribute 'constraints' crashFix SessionBase.exists() return type
SessionBase.exists() return type@classpropertyModel attributes of functions, thanks to @syastrovclass A(models.Model):
pass
class B(models.Model):
pass
def service(a: A) -> int:
pass
service(B()) # now it fails
Nothing published for this version
Nothing published for this version
Support for proper return types of values() and values_list, thanks to @syastrov.
values() and values_list, thanks to @syastrov.forms.__init__.pyi.django.core.validators classes less specific, thanks to @kalekseev.Support returning the correct values for the different QuerySet methods when using .values() and .values_list(). Contributed by @syastrov
gzip_page decorator. Contributed by @mattbastaFix importing of django.views package
django.views packageblank=True doesn't make CharField nullable now, thanks to @NaddiseoFix annotations for MultiValueDict
MultiValueDictPlugin support for FormMixin's get_form() and get_form_class()
FormMixin's get_form() and get_form_class()QuerySet.in_bulk(), thanks to @syastrovtransaction.atomic reworked, thanks to @syastrov
transaction.atomic reworked, thanks to @syastrovAdd strict_optional = True support
strict_optional = True supportNothing published for this version
Return proper types from django.shortcuts.get_object_or_404 and django.shortcuts.get_list_or_404. https://github.com/mkurnikov/django-stubs/issues/22
django.shortcuts.get_object_or_404 and django.shortcuts.get_list_or_404. https://github.com/mkurnikov/django-stubs/issues/22django.contrib.auth.get_user_model() https://github.com/mkurnikov/django-stubs/issues/16Any.Support for typechecking of Model.__init__() and BaseManager.create() arguments
Model.__init__() and BaseManager.create() argumentsobjects and _default_manager managersBunch of fixes / missing reimports.
Add objects attribute to models.Model, so now TypeVars with bound=models.Model work correctly.
django.utils.dates.objects attribute to models.Model, so now TypeVars with bound=models.Model work correctly.Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →