У меня есть модель Django, которая выглядит примерно так:Джанго сравнить значения двух объектов
class Response(models.Model):
transcript = models.TextField(null=True)
class Coding(models.Model):
qid = models.CharField(max_length = 30)
value = models.CharField(max_length = 200)
response = models.ForeignKey(Response)
coder = models.ForeignKey(User)
Для каждого объекта Response, есть два кодирование объектов с QID = «риском», один для кодера 3 и один для кодера 4. То, что я хотел бы сделать, это получить список всех объектов Response, для которых разница в значении между кодером 3 и кодером 4 больше 1. Поле значений хранит номера 1-7.
Я понимаю, что установка значения как CharField может быть ошибкой, но, надеюсь, я смогу обойти это.
Я считаю, что-то вроде следующего SQL будет делать то, что я ищу, но я предпочел бы сделать это с ОРМ
SELECT UNIQUE c1.response_id FROM coding c1, coding c2
WHERE c1.coder_id = 3 AND
c2.coder_id = 4 AND
c1.qid = "risk" AND
c2.qid = "risk" AND
c1.response_id = c2.response_id AND
c1.value - c2.value > 1
Я думаю, что вы имели в виду включить 'c1.response_id = c2.response_id' в ИНЕКЕ вашего запроса. –
@AryehLeibTaurog да я. Благодарю. – Ryan