Как выполнить конкатенацию в Django annotate()

Я хочу конкатенировать строковую переменную с одним из моих полей, но не могу понять, что я делаю не так

Я попробовал это, где prefix - строка, а filename_mask - поле в таблице

 plots = (
            PlotDefinitions.objects.filter(is_active=True)
            .annotate(
                filename=Concat(Value(prefix), 'filename_mask')
            )
            .values('name', 'description', 'filename')
        )

Я получаю ошибку Expression contains mixed types: CharField, TextField. You must set output_field., даже если я конкатенирую 2 типа String.

Поэтому я добавил output_field

 plots = (
            PlotDefinitions.objects.filter(is_active=True)
            .annotate(
                filename=Concat(Value(prefix), 'filename_mask', output_field=CharField())
            )
            .values('name', 'description', 'filename')
        )

но это дает ошибку "'CharField' object has no attribute 'get_internal_type'"

Вернуться на верх