========================== 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 :meth:`distinct(*fields) <.QuerySet.distinct>` with ``order_by()`` and ``values()`` and using two lookup paths resolving to the same column (:ticket:`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" }}`` (:ticket:`37257`). * Fixed a regression in Django 6.1 where :attr:`.ModelAdmin.list_display` entries that traverse multiple relations using ``__`` could crash or display incorrect values (:ticket:`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 ``ManyToManyField``\s (:ticket:`37254`). * Fixed a regression in Django 6.1 where custom querysets used with :class:`~django.db.models.Prefetch` for forward foreign key or reverse one-to-one relationships were not routed using the parent queryset's database (:ticket:`37300`). * Fixed a regression in Django 6.1 where HTML-safe strings, such as those created with :func:`~django.utils.safestring.mark_safe`, used as form media assets were treated as asset paths rather than being rendered verbatim (:ticket:`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 (:ticket:`37260`). * Fixed a bug in Django 6.1 where :class:`~django.db.models.DecimalField` without ``max_digits`` and ``decimal_places`` caused a crash when retrieving values on SQLite (:ticket:`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`` (:ticket:`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`` (:ticket:`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 (:ticket:`37311`). * Fixed a bug in Django 6.1 where :meth:`.QuerySet.in_bulk` chained after :meth:`.QuerySet.values` or :meth:`.QuerySet.values_list` could drop selected annotations or produce incorrect mapping keys (:ticket:`37312`).