Вопрос:
У меня есть модель:
class Motocycle(models.Model): title = models.CharField(max_length=50, blank=True, default=») engine_displacement = models.IntegerField(default=0)
и я хочу:
queryset = Motocycle.objects.annotate( full_name=Concat( ‘title’, Value(‘ ‘), F(‘engine_displacement’), Value(») ), ).all()
Но получилась ошибка: Expression contains mixed types. You must set output_field Expression contains mixed types. You must set output_field:
queryset = Motocycle.objects.annotate( full_name=Concat( ‘title’, Value(‘ ‘), F(‘engine_displacement’), Value(»), ), output_field=CharField(), ).all()
Я попытался установить это output_field, результатом был: ‘CharField’ object has no attribute ‘resolve_expression’.
Что я делаю неправильно? Спасибо.
Лучший ответ:
Вы должны передать output_field вашей функции db, в свой код, который вы передаете, чтобы аннотировать.
queryset = Motocycle.objects.annotate( full_name=Concat( ‘title’, Value(‘ ‘), F(‘engine_displacement’), Value(»), output_field=CharField(), ), ).all()