Fixed #25284 -- Documented removal of implicit QuerySet __in lookups.

This commit is contained in:
Tim Graham 2015-08-18 19:19:01 -04:00
parent 6c6eb8a691
commit d3bc86ec11
1 changed files with 16 additions and 0 deletions

View File

@ -877,6 +877,22 @@ returned a list, but an iterator is more efficient.
Existing code that depends on ``list`` specific features, such as indexing, Existing code that depends on ``list`` specific features, such as indexing,
can be ported by converting the iterator into a ``list`` using ``list()``. can be ported by converting the iterator into a ``list`` using ``list()``.
Implicit ``QuerySet`` ``__in`` lookup removed
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In earlier versions, queries such as::
Model.objects.filter(related_id=RelatedModel.objects.all())
would implicitly convert to::
Model.objects.filter(related_id__in=RelatedModel.objects.all())
resulting in SQL like ``"related_id IN (SELECT id FROM ...)"``.
This implicit ``__in`` no longer happens so the "IN" SQL is now "=", and if the
subquery returns multiple results, at least some databases will throw an error.
Miscellaneous Miscellaneous
~~~~~~~~~~~~~ ~~~~~~~~~~~~~