Пользовательский менеджер моделей, использующий методы моделей в Django - PullRequest
0 голосов
/ 11 февраля 2020

в моей модели у меня есть 3 метода. я хочу использовать метод get_days_remaining, чтобы срок действия всех политик истек через 30 дней.

Class TravelPolicy(models.Model):
    ....
    ....

def get_period_of_cover(self):
    some logic
def get_days_left_to_run(self):
    some logic

def get_days_remaining(self):
    return float(self.get_period_of_cover()) - float(self.get_days_left_to_run())

, выполняющих в настоящее время TravelPolicy.objects.all(), возвращает более 10000 политик, в то время как я мог бы использовать политики в порядке нескольких сотен, срок действия которых истекает в следующие 30 дней. , Как я могу получить только политики, срок действия которых истекает через 30 дней, используя метод get_days_remaining в моих представлениях, прежде чем передать его в файл html?

1 Ответ

2 голосов
/ 11 февраля 2020

Вы можете попробовать что-то похожее на следующее (использование итератора не загрузит все политики в память):

my_policies = [i for i in TravelPolicy.objects.iterator() if i.get_days_remaining() < 30]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...