我的代码如下:
Songs.objects.filter(clients__id__in=client)\
.annotate(
logic_value=Case(
When(after_n_values__isnull=False, then="aftervals_songs"),
When(specific_time__isnull=False, then=F('specific_time')),
distinct=True,
output_field=models.TextField()))\
.values('logic_value')
在这里,我得到一个错误,原因是:
When(specific_time__isnull=False, then=F('specific_time'))
因为specific_time
在模型中是TimeField()
,而after_n_values
是一个整数。我实际上想检查(after_n_values
或specific_time
之间的值是否存在),然后它应该返回相应的值
但是,我得到了以下错误:
ProgrammingError: CASE types integer and time without time zone cannot be matched
LINE 1: ... WHEN "core_songs"."specific_time" IS NOT NULL THEN "core_songs"...
有谁能建议我如何使用when子句在这里检查日期是否如上所示是存在的还是空的
目前没有回答
相关问题 更多 >
编程相关推荐