15 lines
405 B
Python
15 lines
405 B
Python
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)
|