如何将空列表[]设置为ArrayAgg字段的默认值,而不是django中的[None]



我有一个查询:

Teacher.objects.alias(
raw_courses_ids=ArrayAgg('courses_can_teach', distinct=True),
).annotate(
courses_ids=Case(
When(raw_courses_ids__contains=[None], then=Value([])),
default=F('raw_courses_ids'),
output_field=ArrayField(IntegerField())
)
).values_list(
'courses_ids'
)

我得到了一个错误:django.core.exceptions.FieldError:无法解析表达式类型,未知的output_field

我该怎么办?

您已经尝试过以下操作吗?

缺少的输出字段是指传递值中的字段。

from django.contrib.postgres.fields import ArrayField
Value([], output_field=ArrayField(IntegerField()))

最新更新