Django. Аннотируйте кверисет для получения количества связей с другой моделью
У меня есть модели Question
, Answer
, Form
и FormAnswer
.
модели были упрощены для сокращения времени чтения
class Question(models.Model):
text = models.CharField(max_length=255)
class Answer(models.Model):
question = models.ForeignKey(Question, models.CASCADE)
text = models.CharField(max_length=255)
class Form(models.Model):
user = models.ForeignKey(CustomUser, models.CASCADE)
class FormAnswer(models.Model):
form = models.ForeignKey(Form, models.CASCADE)
question = models.ForeignKey(Question, models.CASCADE)
answer = models.ForeignKey(Answer, models.CASCADE)
Я бы хотел иметь возможность аннотировать статистику следующим образом:
Form.stats -> {
1: { # Question.pk
2: 5 # Answer.pk: how much times this question
# was answered with this answer via FormAnswer model
3: 11,
4: 1,
},
2: {
5: 1,
6: 2,
7: 9,
},
}
Альтернативные варианты SQL также были бы полезны