summaryrefslogtreecommitdiff
path: root/django/contrib/postgres/fields/array.py
diff options
context:
space:
mode:
Diffstat (limited to 'django/contrib/postgres/fields/array.py')
-rw-r--r--django/contrib/postgres/fields/array.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/django/contrib/postgres/fields/array.py b/django/contrib/postgres/fields/array.py
index f867571215..58341e02ab 100644
--- a/django/contrib/postgres/fields/array.py
+++ b/django/contrib/postgres/fields/array.py
@@ -124,8 +124,12 @@ class ArrayField(CheckPostgresInstalledMixin, CheckFieldDefaultMixin, Field):
db_params["collation"] = self.db_collation
return db_params
- def get_placeholder(self, value, compiler, connection):
- return "%s::{}".format(self.db_type(connection))
+ def get_placeholder_sql(self, value, compiler, connection):
+ db_type = self.db_type(connection)
+ if hasattr(value, "as_sql"):
+ sql, params = compiler.compile(value)
+ return f"{sql}::{db_type}", params
+ return f"%s::{db_type}", (value,)
def get_db_prep_value(self, value, connection, prepared=False):
if isinstance(value, (list, tuple)):