Mam modelu Django, który wygląda mniej więcej tak:Django porównać wartości z dwóch obiektów
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)
Dla każdego obiektu Response, istnieją dwa kodowania obiektów z QID = „ryzyko”, po jednym dla kodera 3 oraz jednego dla kodera 4. To, co chciałbym móc zrobić, to uzyskać listę wszystkich obiektów odpowiedzi, dla których różnica wartości między koderem 3 a koderem 4 jest większa niż 1. Pole wartości przechowuje cyfry 1-7.
Z perspektywy czasu zdałem sobie sprawę, że określenie wartości jako CharField mogło być błędem, ale mam nadzieję, że uda mi się to obejść.
wierzę coś następującym SQL zrobi co szukam, ale wolałbym zrobić to z ORM
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
Chyba obejmować 'c1.response_id = c2.response_id' w klauzuli WHERE zapytania. –
@AryehLeibTaurog tak, zrobiłem. Dzięki. – Ryan