From c37b2e46b9c3fc91973d6f8678bafb6e67b85031 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anssi=20K=C3=A4=C3=A4ri=C3=A4inen?= Date: Wed, 6 Nov 2013 22:11:54 +0200 Subject: [PATCH] [1.6.x] Release notes for ORM changes in 1.6 Backport of 4301d6fa36 from master --- docs/releases/1.6.txt | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/docs/releases/1.6.txt b/docs/releases/1.6.txt index 999103df9a..ccec87563c 100644 --- a/docs/releases/1.6.txt +++ b/docs/releases/1.6.txt @@ -812,6 +812,31 @@ as JSON requires string keys, you will likely run into problems if you are using non-string keys in ``request.session``. See the :ref:`session_serialization` documentation for more details. +Object Relational Mapper changes +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Django 1.6 contains many changes to the ORM. These changes fall mostly in +three categories: + + 1. Bug fixes (e.g. proper join clauses for generic relations, query + combining, join promotion, and join trimming fixes) + 2. Preparation for new features. For example the ORM is now internally ready + for multicolumn foreign keys. + 3. General cleanup. + +These changes can result in some compatibility problems. For example, some +queries will now generate different table aliases. This can affect +:meth:`QuerySet.extra() `. In addition +some queries will now produce different results. An example is +:meth:`exclude(condition) ` +where the condition is a complex one (referencing multijoins inside +:class:`Q objects `). In many cases the affected +queries didn't produce correct results in Django 1.5 but do now. +Unfortunately there are also cases that produce different results, but +neither Django 1.5 nor 1.6 produce correct results. + +Finally, there have been many changes to the ORM internal APIs. + Miscellaneous ~~~~~~~~~~~~~