RepoJournal

$ cat django/week/2026-08-31.log

Django

Django

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.

47 commits 28 PRs merged 7 briefings covered

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. [1] Fixed #37263 -- Fixed changelist __exact search crashes and over-matching. ↗ django/django
  2. [2] Fixed #37222 -- Fixed QuerySet.distinct() crash on duplicated selections. ↗ django/django
  3. [3] Fixed #37312, Refs #36605 -- Fixed annotation preservation and key selection in in_bulk(). ↗ django/django
  4. [4] Fixed #37311 -- Prevented consumption of rhs iterators in annotation lookups. ↗ django/django
  5. [5] Fixed #37309 -- Used _is_pk_set() in Model.__eq__ and the XML serializer. ↗ django/django
  6. [6] Fixed #37237 -- Improved RelatedIn lookup preparation performance. ↗ django/django
  7. [7] Improve search performance ↗ django/djangoproject.com
  8. [8] Use a deterministic sort for search results ↗ django/djangoproject.com
  9. [9] Avoid expensive search headline calculations ↗ django/djangoproject.com
  10. [10] Fixed #37300 -- Preserved parent instance hints on custom Prefetch querysets. ↗ django/django
  11. [11] Fixed #37237 -- Improved RelatedIn lookup preparation performance. ↗ django/django
  12. [12] Updated Teams page title to h1 tag and include "Working Groups". ↗ django/djangoproject.com
  13. [13] Removed duplicate "Back to top" link from Sponsor page. (#2814) ↗ django/djangoproject.com
  14. [14] Added remaining community package mentions to the documentation. ↗ django/django

$ ls django/week/ # the briefings behind this review