Фильтр с использованием поля @property django
Я хочу фильтровать на основе поля @property для создания набора запросов. Моя модель выглядит следующим образом.
`class PrHW(models.Model):
po_duration = models.IntegerField(null=True)
provision_start_date = models.DateField(null=True, blank=True)
description = models.TextField(blank=True, null=True)
@property
def provision_end_date(self):
provision_end_date = self.provision_start_date + relativedelta(months=self.po_duration)
return provision_end_date`
Поскольку "provision_end_date" является вычисляемым полем, оно не является частью PrHW.objects.all(), и поэтому я не могу создать набор запросов, используя его в качестве опции фильтра (например, создать список объектов PrHW, где provision_end_date меньше, чем сегодня - Выдается ошибка, что "provision_end_date" не является допустимым полем, что и ожидалось). Я попробовал создать пользовательский менеджер моделей, но все равно не могу получить доступ ни к полю @property, ни к другим полям, таким как "provision_start_date" в пользовательском менеджере. Возможно, это было бы проще простого, но даже после нескольких поисков я не смог разобраться с этим. Любая помощь будет принята с благодарностью.
Декоратор @property позволяет получить доступ к полю модели, как если бы это было обычное свойство.
Это означает, что вы можете вызвать provision_start_date как если бы это была переменная:
start_date = prwh.provision_start_date
Кроме того, вы можете выполнять проверки следующим образом
if prwh.provision_start_date < today: "вернуть что-нибудь"