gpt4 book ai didi

Django 注释 Concat - 表达式包含混合类型。您必须设置 output_field

转载 作者:行者123 更新时间:2023-12-02 09:18:21 26 4
gpt4 key购买 nike

我有一个模型:

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()

但出现错误:表达式包含混合类型。您必须设置 output_field:

queryset = Motocycle.objects.annotate(
full_name=Concat(
'title',
Value(' '),
F('engine_displacement'),
Value(''),
),
output_field=CharField(),
).all()

我尝试设置此 output_field,结果是:'CharField' 对象没有属性 'resolve_expression'

我做错了什么?谢谢。

最佳答案

您必须将 output_field 传递给您的 db 函数,在您的代码中将其传递给注释。

queryset = Motocycle.objects.annotate(
full_name=Concat(
'title',
Value(' '),
F('engine_displacement'),
Value(''),
output_field=CharField(),
),
).all()

关于Django 注释 Concat - 表达式包含混合类型。您必须设置 output_field,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44888604/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com