You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
14 lines
405 B
14 lines
405 B
from django.contrib.postgres.fields import ArrayField
|
|
from django.db.models import Subquery
|
|
from django.utils.functional import cached_property
|
|
|
|
|
|
class ArraySubquery(Subquery):
|
|
template = "ARRAY(%(subquery)s)"
|
|
|
|
def __init__(self, queryset, **kwargs):
|
|
super().__init__(queryset, **kwargs)
|
|
|
|
@cached_property
|
|
def output_field(self):
|
|
return ArrayField(self.query.output_field)
|
|
|