summaryrefslogtreecommitdiff
path: root/django/contrib/postgres/fields/array.py
diff options
context:
space:
mode:
authorMichaƂ Pasternak <michal.dtz@gmail.com>2017-10-27 23:38:43 +0200
committerTim Graham <timograham@gmail.com>2017-11-01 15:40:32 -0400
commite80a014fceb64a0723174c296710e6b4c04d58d0 (patch)
tree612111def2ed7d36b211f43ef9985522542ce386 /django/contrib/postgres/fields/array.py
parent29c97fa6b7067c06f5effb2136161d9564ccd5b6 (diff)
[2.0.x] Fixed #28749 -- Added subquery support for ArrayField's __in lookup.
Backport of e554b72a2a5473f3f1e57a32565758757a9e8e87 from master
Diffstat (limited to 'django/contrib/postgres/fields/array.py')
-rw-r--r--django/contrib/postgres/fields/array.py3
1 files changed, 3 insertions, 0 deletions
diff --git a/django/contrib/postgres/fields/array.py b/django/contrib/postgres/fields/array.py
index 7992740663..a5f6573766 100644
--- a/django/contrib/postgres/fields/array.py
+++ b/django/contrib/postgres/fields/array.py
@@ -240,6 +240,9 @@ class ArrayLenTransform(Transform):
class ArrayInLookup(In):
def get_prep_lookup(self):
values = super().get_prep_lookup()
+ if hasattr(self.rhs, '_prepare'):
+ # Subqueries don't need further preparation.
+ return values
# In.process_rhs() expects values to be hashable, so convert lists
# to tuples.
prepared_values = []