【发布时间】:2022-01-19 17:07:57
【问题描述】:
假设我有以下 Django 模型和相应的带有一些数据的 SQL 表。我已经简化了模型,使其更清晰。
用户回答:
class UserAnswer(models.Model):
partquestion = models.ForeignKey(PartQuestion)
answer = models.CharField()
| id | answer | partquestion_id |
|---|---|---|
| 1 | 667 | 1 |
部分问题:
class PartQuestion(models.Model):
question = models.ForeignKey(Question)
part = models.ForeignKey(Part)
| id | question_id | part_id |
|---|---|---|
| 1 | 1 | 1 |
解决方案:
class SingleInputSolution(models.Model):
question = models.ForeignKey(Question)
content = models.CharField()
| id | content | question_id |
|---|---|---|
| 1 | 667 | 1 |
| 2 | 85 | 2 |
我想获得所有用户答案,其中答案等于相应问题的解决方案。我想出了这个 SQL 查询,但真的想不出如何在 Djano 查询中实现它:
select * from (useranswer join partquestion on
useranswer.partquestion_id = partquestion.id) join solution on
partquestion.question_id = solution.question_id where answer=content;
这将输出以下内容:
| useranswer.id | useranswer.answer | useranswer.partquestion_id | partquestion.id | partquestion.question_id | partquestion.part_id | solution.id | solution.content | solution.question_id |
|---|---|---|---|---|---|---|---|---|
| 1 | 667 | 1 | 1 | 1 | 1 | 1 | 667 | 1 |
我只是无法理解 Django 中的这个概念。也许使用 F-Expressions 和一些东西。
感谢您的建议。
【问题讨论】:
-
你能分享你的模型吗?这将使帮助您变得更加容易。例如,不清楚模型之间是如何相互关联的(通过外键?)。
-
@yagus 哦,当然,对不起。我将模型定义添加到问题中。