【发布时间】:2020-06-13 09:24:44
【问题描述】:
我有一个这样的查询集:
predicts = Prediction.objects.select_related('match').filter(match_id=pk)
我需要使用新字段 is_correct 对此进行注释。我需要比较两个字符串字段,结果应该在这个新字段中进行注释。我要比较的字段是:
-
predict来自预测表 -
result来自匹配表(已通过select_related加入)
我需要知道我应该在我的注释函数中放入什么表达式;下面我有我当前的代码,它通过 TypeError 异常:
predicts = predicts.annotate(is_correct=(F('predict') == F('result')))
所有帮助将不胜感激。
更新:
我找到了一个可以为我完成这项工作的替代解决方案(使用 filter 和 exclude 根据匹配结果过滤预测),但我仍然想知道如何解决新注释字段所在的这种特定情况查询集的其他两个字段之间的比较结果。对于那些可能需要它的人,Django 2.2 和之后的Nullif database function 会在两个字段之间进行比较。
【问题讨论】:
标签: django django-queryset query-expressions