Django 6.1.1
Django 6.1.1 has been released on September 2, 2026. This is a bugfix release that resolves one crash inherited from Django 5.2 and addresses several regressions introduced in the Django 6.1 cycle. No new features are included in this release.
Overview
Django 6.1.1 is a maintenance release focused on restoring correctness after the feature-heavy 6.1.0. The core team backported a targeted set of fixes covering the ORM, the admin, form media handling, and model introspection.
Bugfixes
- Django 5.2 crash fix — Combining
distinct(*fields)withorder_by()andvalues()no longer crashes when two lookup paths resolve to the same column. - Template literal regression — The double-dot variable lookup deprecation no longer misfires on string and translated template literals such as
{{ "a..b" }}. - Admin list_display — Entries traversing multiple relations with
__no longer crash or show incorrect values. - Prefetch routing — Custom querysets used with
Prefetchfor forward foreign keys and reverse one-to-ones now use the parent queryset database. - Form media assets — HTML-safe strings created with
mark_safe()are again rendered verbatim instead of being treated as asset paths. - Schema migration —
AlterFieldchanging only the Python-levelon_deleteoption no longer triggers unnecessary schema changes. - DecimalField on SQLite — Values now retrieve correctly when
max_digitsanddecimal_placesare unset. - from_db compatibility — Models overriding
Model.from_db()withoutfetch_modework again, though the override is now deprecated. - Annotation lookups —
__inlookups on annotations no longer return empty querysets, and__rangewith an iterator no longer crashes. - in_bulk ordering —
QuerySet.in_bulk()chained aftervalues()orvalues_list()no longer drops annotations or miskeys results.
Deprecations
Overriding Model.from_db() without the new fetch_mode keyword argument is now deprecated. Update these overrides to accept fetch_mode to remain compatible with upcoming Django releases.
Upgrade
Follow the standard Django upgrade path by updating your pinned version to 6.1.1 and running your test suite. The official release notes contain the full list of fixed tickets.