Django ManyToMany trhough суммарное вычисление
Выдача следующих моделей:
class Question(models.Model):
question = models.TextField()
output_params = models.ManyToManyField(OutputParam, through='OutputParamWeight')
class OutputParam(TimeStampModel):
form = models.ForeignKey(Form, on_delete=models.CASCADE, related_name='output_params')
name = models.CharField(max_length=255)
class OutputParamWeight(models.Model):
output_param = models.ForeignKey(OutputParam, on_delete=models.CASCADE)
question = models.ForeignKey(Question, on_delete=models.CASCADE)
weight = models.IntegerField()
class Answer(TimeStampModel):
question = models.ForeignKey(Question, on_delete=models.CASCADE, related_name='answers')
value = models.IntegerField()
Каждый вопрос затрагивает N выходных параметров в виде умножения x1, x2, x3 ассоциативного ответа значение. Например:
Question 1 -> Output param 1 x1
Output param 2 x3
Output param 3 x2
Question 2 -> Output param 1 x2
Output param 3 x3
Answer 1 -> Question 1
Value 2
Answer 2 -> Question 2
Value 3
Итак, что я пытаюсь сделать сейчас, так это обобщить результат формы следующим образом:
Output param 1: 6 (answer1.value * question1.output_param1.weight + answer1.value * question2.output_param1.weight)
Output param 2: 15
Какие запросы я должен выполнить, чтобы получить конечный результат оптимизированным способом?