Ich habe ein Modell Django, die etwa wie folgt aussieht:Django vergleichen Werte von zwei Objekten
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)
Objekt Für jede Antwort gibt es zwei Codierungs Objekte mit qid = „Risiko“, ein für Codierer 3 und einem für Coder 4. Ich würde gerne eine Liste aller Response-Objekte erhalten, deren Wertdifferenz zwischen Coder 3 und Coder 4 größer als 1 ist. Im Wertfeld sind die Zahlen 1-7 gespeichert.
Im Nachhinein erkenne ich, dass das Einrichten eines Werts als CharField möglicherweise ein Fehler war, aber hoffentlich kann ich das umgehen.
Ich glaube, so etwas wie die folgende SQL tun würde, was ich suche, aber ich würde lieber dies mit dem 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
Ich glaube, Sie 'c1.response_id = c2.response_id' in der WHERE-Klausel der Abfrage enthalten sein sollten. –
@AryehLeibTaurog ja ich tat. Vielen Dank. – Ryan