Типы COALESCE text и bigint не могут быть сопоставлены в Django с PostgreSQL
Я хочу использовать два подзапроса в функции Coalesce, как в коде ниже.
cached_board_id_query = Subquery(
self.user_model.objects
.annotate(memo_board_id=Func(
F('preferences'),
Value('module'),
Value('tasks'),
Cast(OuterRef('id'), output_field=CharField()),
Value('board'), function='jsonb_extract_path_text', output_field=IntegerField()
)).values('memo_board_id')[:1], output_field=IntegerField())
default_board_id_query = Subquery(
self.board_model.objects
.filter(project_id=OuterRef('id'))
.only('id')[:1],
output_field=IntegerField()
)
projects = list(
self.get_queryset().annotate(
board_id=Coalesce(
cached_board_id_query,
default_board_id_query,
output_field=IntegerField()
)
).order_by('id').values()
)
Однако я получаю исключение, что типы coalesce не совпадают. Я не понимаю, где происходит несоответствие, поскольку все выходные поля имеют одинаковый тип. Что не так с этим запросом?
ProgrammingError at /url/
COALESCE types text and bigint cannot be matched
LINE 1: ... FROM "user" U0 WHERE U0."id" = 1 LIMIT 1), (SELECT U0...