Tôi có một mô hình Django mà trông giống như sau:Django so sánh giá trị của hai đối tượng
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)
Đối với mỗi đối tượng Response, có hai đối tượng mã hóa với qid = "nguy cơ", một cho coder 3 và một cho coder 4. Điều tôi muốn làm là lấy danh sách tất cả các đối tượng Response mà sự khác biệt về giá trị giữa coder 3 và coder 4 lớn hơn 1. Trường giá trị lưu trữ số 1-7.
Tôi nhận thấy rằng việc thiết lập giá trị dưới dạng CharField có thể là một sai lầm, nhưng hy vọng tôi có thể làm được điều đó.
Tôi tin rằng một cái gì đó giống như SQL sau đây sẽ làm những gì tôi đang tìm kiếm, nhưng tôi thà làm điều này với 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
Tôi nghĩ bạn định gửi cho 'c1.response_id = c2.response_id' trong mệnh đề WHERE của truy vấn của bạn. –
@AryehLeibTaurog vâng tôi đã làm. Cảm ơn. – Ryan