我有一个看起来像这样的 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 = "risk" 的编码对象,一个用于 coder 3,一个用于 coder 4。我想要做的是获取所有 Response 对象的列表,其中值的差异coder 3 和 coder 4 之间的值大于 1。 value 字段存储数字 1-7。
事后我意识到将 value 设置为 CharField 可能是一个错误,但希望我能解决这个问题。
我相信类似下面的 SQL 会做我正在寻找的东西,但我宁愿用 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