Ho un modello di Django che sembra qualcosa di simile:Django confrontare i valori di due oggetti
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)
Per ogni oggetto Response, ci sono due oggetti di codifica con qid = "rischio", uno per il codificatore 3 ed uno per coder 4. Quello che vorrei essere in grado di fare è ottenere un elenco di tutti gli oggetti Response per i quali la differenza di valore tra coder 3 e coder 4 è maggiore di 1. Il campo value memorizza i numeri 1-7.
Mi rendo conto a posteriori che impostare un valore come un CharField potrebbe essere stato un errore, ma spero di poterlo aggirare.
credo che qualcosa di simile a SQL avrebbe fatto quello che sto cercando, ma io preferirei fare questo con l'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
Credo che si intende includere 'c1.response_id = c2.response_id' nella clausola WHERE della query. –
@AryehLeibTaurog sì, l'ho fatto. Grazie. – Ryan