Объединение нескольких таблиц и вычисление среднего значения в наборе запросов

У меня есть пять моделей: 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')))

Не работает. Мне нужна помощь! Я открыт для любых предложений и пожеланий

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