我的模型基本上是这样的:
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
有没有办法从amount
过滤agency_fee
(即owner_fee
和Unit.objects
的总和)?
答案 0 :(得分:16)
或者只需将a + b > c
转换为a > c - b
即可使用models.F
expression:
UnitPrice.objects.filter(agency_fee__gt=10-models.F('owner_fee'))
答案 1 :(得分:11)
extra()
可以帮助您
UnitPrice.objects.extra(where=["agency_fee + owner_fee > 10"])