我正在使用 django orm 子查询。但是当我添加一个特定的过滤器参数时,FieldError: Expression contains mixed types。您必须设置 output_field引发错误。
我可以知道这个错误是什么以及如何解决它吗?
下面是出现错误的代码,在第6行和第7行添加is_active=True和eventcardad__isnull=False时出现错误!
- 我正在使用 PostgreSQL RDBMS!
personalized_event_ads_qs = CustomerPersonalization.objects.filter(
customer__id__in=Customer.objects.filter(accept_marketing=True).filter(email='abc1@naver.com')
).annotate(
element_ids=Subquery(
Element.objects.fil
is_active=True,
eventcardad__isnull=False,
campaign__in=campaign_qs,
).filter(
majors__in=OuterRef('majors'),
).filter(
Q(cities__in=OuterRef('cities')) |
Q(districts__in=OuterRef('districts'))
).values(
'is_active'
).annotate(
element_ids=ArrayAgg('eventcardad', distinct=True)
).values(
'element_ids'
)
)
).values(
'element_ids'
).annotate(
customers=ArrayAgg('customer', distinct=True)
)