有没有办法注释这个django对象计算机属性?
Is there a way to annotate this django object computer property?
我有一个名为 Payment
的 Django 模型,我想通过计算的 属性.
进行过滤
class Payment(Model):
...other fields
terms = PositiveIntegerField(help_text='days')
issued_date = DateField()
然后我有这个 属性 来计算 payment_date
@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)
我有一个名为 Payment
的 Django 模型,我想通过计算的 属性.
class Payment(Model):
...other fields
terms = PositiveIntegerField(help_text='days')
issued_date = DateField()
然后我有这个 属性 来计算 payment_date
@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)