Есть ли способ аннотировать это свойство компьютера объекта django?
У меня есть модель django с именем Payment
, которую я хочу фильтровать по вычисляемому свойству.
class Payment(Model):
...other fields
terms = PositiveIntegerField(help_text='days')
issued_date = DateField()
<
@property
def payment(self):
return self.issued_date + datetime.timedelta(days=self.terms)
Я попытался аннотировать его примерно так:
Payment.objects.annotate(due_date=ExpressionWrapper(F('issued_date') + F('terms'), output_field=DateField()))
но, к сожалению, это не работает. Любая помощь в этом вопросе будет высоко оценена.
На самом деле это работает:
Payment.objects.annotate(due_date=ExpressionWrapper(F('issued_date') + F('terms'), output_field=DateField()))
Проблема заключалась в том, что due_date
уже существует как свойство, и изменение этого имени на другое устранило ошибку.
Payment.objects.annotate(date_due=...rest of the expression here)