У меня есть такой набор запросов:
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
), но я все еще хотел бы знать, как решить этот конкретный c случай, когда новое аннотированное поле результат сравнения двух других полей набора запросов. Для тех, кому это может понадобиться, в Django 2.2
и более поздних версиях функция базы данных Nullif выполняет сравнение между двумя полями.