# Django 6.1.1 - Product: Django (https://whatsnew.fyi/product/django) - Vendor: Django Software Foundation - Date: 2026-09-02 - Version: 6.1.1 - Original notes: https://pypi.org/project/Django/6.1.1/ - Permalink: https://whatsnew.fyi/product/django/releases/6.1.1 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **fixed** — Fixed a crash in Django 5.2 when combining distinct(*fields) with order_by() and values() and using two lookup paths resolving to the same column - **fixed** — Fixed a regression in Django 6.1 where the deprecation of double-dot variable lookups incorrectly applied to string and translated template literals containing two consecutive dots - **fixed** — Fixed a regression in Django 6.1 where ModelAdmin.list_display entries that traverse multiple relations using __ could crash or display incorrect values - **fixed** — Fixed a bug in Django 6.1 where the fields.E323 system check did not detect mixed on_delete variants for auto-created intermediate models for ManyToManyFields - **fixed** — Fixed a regression in Django 6.1 where custom querysets used with Prefetch for forward foreign key or reverse one-to-one relationships were not routed using the parent queryset's database - **fixed** — Fixed a regression in Django 6.1 where HTML-safe strings, such as those created with mark_safe(), used as form media assets were treated as asset paths rather than being rendered verbatim - **fixed** — Fixed a regression in Django 6.1 that caused AlterField operations that changed only the Python-level on_delete option of ForeignKey or OneToOneField fields to perform unnecessary schema changes - **fixed** — Fixed a bug in Django 6.1 where DecimalField without max_digits and decimal_places caused a crash when retrieving values on SQLite - **fixed** — Fixed a regression in Django 6.1 that caused a crash when iterating a QuerySet of a model overriding Model.from_db() without the new fetch_mode keyword argument - **deprecated** — Model.from_db() overrides without the new fetch_mode keyword argument are now deprecated and should be updated to accept fetch_mode - **fixed** — Fixed a regression in Django 6.1 where an admin changelist search crashed when a search_fields entry used an __exact lookup on a field with choices, and where any search term matched all rows with a True value when an __exact lookup was used on a BooleanField - **fixed** — Fixed a regression in Django 6.1 that caused __in lookups on annotations to erroneously return empty querysets and __range lookups to crash when passed an iterator - **fixed** — Fixed a bug in Django 6.1 where QuerySet.in_bulk() chained after QuerySet.values() or QuerySet.values_list() could drop selected annotations or produce incorrect mapping keys #### Django 6.1.1 release notes September 2, 2026 Django 6.1.1 fixes one crash in Django 5.2 and several bugs in 6.1. ##### Bugfixes - Fixed a crash in Django 5.2 when combining distinct(*fields) with order_by() and values() and using two lookup paths resolving to the same column (#37222). - Fixed a regression in Django 6.1 where the deprecation of double-dot variable lookups incorrectly applied to string and translated template literals containing two consecutive dots, such as {{ "a..b" }} (#37257). - Fixed a regression in Django 6.1 where ModelAdmin.list_display entries that traverse multiple relations using __ could crash or display incorrect values (#37270). - Fixed a bug in Django 6.1 where the fields.E323 system check did not detect mixed on_delete variants for auto-created intermediate models for ManyToManyFields (#37254). - Fixed a regression in Django 6.1 where custom querysets used with Prefetch for forward foreign key or reverse one-to-one relationships were not routed using the parent queryset’s database (#37300). - Fixed a regression in Django 6.1 where HTML-safe strings, such as those created with mark_safe(), used as form media assets were treated as asset paths rather than being rendered verbatim (#37262). - Fixed a regression in Django 6.1 that caused AlterField operations that changed only the Python-level on_delete option of ForeignKey or OneToOneField fields to perform unnecessary schema changes (#37260). - Fixed a bug in Django 6.1 where DecimalField without max_digits and decimal_places caused a crash when retrieving values on SQLite (#37275). - Fixed a regression in Django 6.1 that caused a crash when iterating a QuerySet of a model overriding Model.from_db() without the new fetch_mode keyword argument. Such overrides now work again, but are deprecated and should be updated to accept fetch_mode (#37259). - Fixed a regression in Django 6.1 where an admin changelist search crashed when a search_fields entry used an __exact lookup on a field with choices, and where any search term matched all rows with a True value when an __exact lookup was used on a BooleanField (#37263). - Fixed a regression in Django 6.1 that caused __in lookups on annotations to erroneously return empty querysets and __range lookups to crash when passed an iterator (#37311). - Fixed a bug in Django 6.1 where QuerySet.in_bulk() chained after QuerySet.values() or QuerySet.values_list() could drop selected annotations or produce incorrect mapping keys (#37312).