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

Какие запросы я должен выполнить, чтобы получить конечный результат оптимизированным способом?

Вернуться на верх