diff options
Diffstat (limited to 'django/contrib/postgres/fields/array.py')
| -rw-r--r-- | django/contrib/postgres/fields/array.py | 8 |
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)): |
