наиболее эффективный способ расчета с запросами - PullRequest
0 голосов
/ 05 ноября 2018

В настоящее время я работаю над приложением Django, которое рассчитывает цены с указанием часов. У меня есть две модели:

первая модель рассчитывает все цены:

class Vacation(models.Model):
    version = models.ForeignKey(Version)
    field_1 = XXX
    ...
    field_n = XXX

    def prices(self):
        calculation = ....
        return [price_1, ... , price_n]
    def margin(self):
        calculation = ....
        return [margin_1, ... , margin_n]

А вторая суммирует все цены на объекты из отпуска (модель)

class Version(models.Model):
    field1 = XXX
    ...
    field_n= XXX

    def totals(self):
        prix_tot = sum(vacation.prices()[0] for vacation in Vacation.objects.filter(version_contrat=self))
        marge_tot = sum(vacation.margin()[0] for vacation in Vacation.objects.filter(version_contrat=self))

    return [prix_tot, marge_tot]

Так что я нашел этот способ сделать это, но когда я обновляю страницу, это занимает много времени (около 25 секунд против 5 секунд без запроса запроса)

Есть ли другой способ сделать это ??

Я смотрел на агрегаты Django, возможно, я ошибался, но у меня не было впечатления, что это помогло в моей ситуации. У кого-нибудь есть идеи, как сделать этот процесс более эффективным ??

Большое спасибо заранее

...