$ cat django/week/2026-08-31.log
the week in review · Aug 31 – Sep 6, 2026
Django ORM fix week and calendar versioning prep
Multiple query regressions fixed and deprecations shift to calendar-based names as Django readies for versioning.
What shipped: Django fixed several ORM regressions this week, including a changelist search crash and over-matching in __exact [1], a QuerySet.distinct() crash on duplicated selections [2], annotation preservation and key selection in in_bulk() [3], and prevention of consumption of rhs iterators in annotation lookups [4]. The core also corrected equality and XML serialization for unsaved composite primary keys [5] and improved RelatedIn lookup preparation performance [11]. On the djangoproject.com front, search performance improved [7], with a deterministic sort and reduced headline calculations [8][9].
Why it matters: These fixes address crashes and over-matching that could affect changelist searches and ORM queries in your applications. The composite primary key support is relatively new, so if you use it, the equality and serialization corrections matter for data integrity [5]. The search performance work on djangoproject.com doesn't directly affect your code, but the deterministic sort sets a better example for search result consistency [8].
What's next: Django is preparing for calendar versioning. Deprecation warnings now use calendar-based names [10], and version tuples support the new scheme [11]. Expect these changes to surface in future releases, so review your code for deprecation warnings that will shift naming conventions.
Also: djangoproject.com fixed docs search fragments [1], restored the Benevity link, updated the Teams page heading [12], removed a duplicate "Back to top" link [13], and added community package mentions to the docs [14].
References
- [1] Fixed #37263 -- Fixed changelist __exact search crashes and over-matching. ↗ django/django
- [2] Fixed #37222 -- Fixed QuerySet.distinct() crash on duplicated selections. ↗ django/django
- [3] Fixed #37312, Refs #36605 -- Fixed annotation preservation and key selection in in_bulk(). ↗ django/django
- [4] Fixed #37311 -- Prevented consumption of rhs iterators in annotation lookups. ↗ django/django
- [5] Fixed #37309 -- Used _is_pk_set() in Model.__eq__ and the XML serializer. ↗ django/django
- [6] Fixed #37237 -- Improved RelatedIn lookup preparation performance. ↗ django/django
- [7] Improve search performance ↗ django/djangoproject.com
- [8] Use a deterministic sort for search results ↗ django/djangoproject.com
- [9] Avoid expensive search headline calculations ↗ django/djangoproject.com
- [10] Fixed #37300 -- Preserved parent instance hints on custom Prefetch querysets. ↗ django/django
- [11] Fixed #37237 -- Improved RelatedIn lookup preparation performance. ↗ django/django
- [12] Updated Teams page title to h1 tag and include "Working Groups". ↗ django/djangoproject.com
- [13] Removed duplicate "Back to top" link from Sponsor page. (#2814) ↗ django/djangoproject.com
- [14] Added remaining community package mentions to the documentation. ↗ django/django
$ ls django/week/ # the briefings behind this review