Ber*_*pac 5 django django-models django-queryset
我的模型基本上是这样的:
class Unit(models.Model):
name = models.CharField(max_length=64)
class UnitPrice(models.Model):
unit = models.ForeignKey(Unit, related_name="prices")
agency_fee = models.DecimalField(default=0.0, max_digits=7, decimal_places=2)
owner_fee = models.DecimalField(default=0.0, max_digits=7, decimal_places=2)
def amount(self):
return self.owner_fee + self.agency_fee
Run Code Online (Sandbox Code Playgroud)
有没有办法过滤amount(即和的agency_fee和owner_fee)Unit.objects?
okm*_*okm 16
或者干脆转换a + b > c到a > c - b以使用models.F表达式:
UnitPrice.objects.filter(agency_fee__gt=10-models.F('owner_fee'))
Run Code Online (Sandbox Code Playgroud)
San*_*4ez 11
extra() 可以帮助你
UnitPrice.objects.extra(where=["agency_fee + owner_fee > 10"])
Run Code Online (Sandbox Code Playgroud)