У меня есть такая модель:
class Agreement(models.Model):
file_no = models.IntegerField(primary_key=True)
contract_date = models.DateField()
contract_time = models.IntegerField()
@property
def calculate_expiry_date(self):
return self.contract_date + relativedelta(years=self.contract_time)
@property
def is_expired(self):
return (self.contract_date + relativedelta(years=self.contract_time)) < timezone.now().date()
Функция is_expired
возвращает true или false для каждого соглашения
и у меня есть простой фильтр вроде этого:
class AgreementFilter(filters.FilterSet):
file_no = filters.NumberFilter(lookup_expr='icontains')
class Meta:
model = Agreement
fields = ['file_no',]
Я думаю, что не могу фильтровать поле свойства, потому что фильтры Django работают на уровне базы данных. Итак, как я могу заставить фильтровать объекты модели соглашения, если они действительны или недействительны, истинны или ложны?