Объединение нескольких таблиц и вычисление среднего значения в наборе запросов
У меня есть пять моделей: Ville, Machine, Compte, Signal, Donnees. Таблица Machine, имеющая ключ таблицы Ville, дает свой ключ таблицам Signal и Compte. Donnees имеет ключ Signal.
Class Ville(models.Model):
nom_ville = models.CharField(maxlength=50)
...
Class Machine(models.Model):
ville = models.ForeignKey(Ville,on_delete=models.CASCADE)
...
class Compte(models.Model):
machine = models.ForeignKey(Machine,on_delete=models.CASCADE,related_name="credits")
montant= models.FloatField()
...
class Signal(models.Model):
machine = models.ForeignKey(Machine,on_delete=models.CASCADE,related_name="signaux")
...
class Donnees(models.Model):
signal= models.ForeignKey(Signal,on_delete=models.CASCADE,related_name="donnees_signal")
donne1 = models.FloatField()
...
Мне нужно вычислить среднее значение Compte.montant и Donnees.donne1, сгруппированных по Ville.nom
.
У меня проблемы с написанием единого набора запросов, чтобы связать эти таблицы и вычислить два средних значения.
Вот что я пытался сделать:
Donnees.objects.values('signal__machine__ville__nom').annotate(moy1=Avg('donnee1'),moy2=Avg(Compte.objects.value('montant')))
Не работает. Мне нужна помощь! Я открыт для любых предложений и пожеланий