@blackbb

Как вычислить среднюю цену за номер через aggregate?

Есть три модели
class Hotel(models.Model):
    user = models.ForeignKey(MyUser, on_delete=models.CASCADE, verbose_name='Владелец')
    title = models.CharField(max_length=100, verbose_name='Название')

    def average_price(self):
        return self.number_set.aggregate(Avg('get_price'))

class Number(models.Model):
    hotel = models.ForeignKey(Hotel, default=1, on_delete=models.CASCADE, verbose_name='Отель')
    title = models.CharField(max_length=100, verbose_name='Название')

    def get_price(self):
        return self.numberprice_set.all.aggregate(Avg('price'))

class NumberPrice(models.Model):
    start = models.DateField(verbose_name='Начало периода')
    finish = models.DateField(verbose_name='Конец периода')
    price = models.IntegerField(null=True, blank=True, verbose_name='Цена')
    number = models.ForeignKey(Number, on_delete=models.CASCADE, verbose_name='Номер')

В шаблоне выводятся гостиницы, нужно отобразить среднюю цену номеров в каждой гостинице. Написал методы в моделях, но не знаю, как обратится к методу get_price из метода average_price модели Hotel. Цену не сделал полем в модели номера, так как цена будет зависеть от периодов(даты).
  • Вопрос задан
  • 65 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы