6

我有一个基本上是这样的模型:

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_feeUnit.objects

4

2 回答 2

17

或者简单地转换a + b > ca > c - b以使用models.F表达式

UnitPrice.objects.filter(agency_fee__gt=10-models.F('owner_fee'))
于 2012-05-19T10:47:11.963 回答
13

extra()可以帮你

UnitPrice.objects.extra(where=["agency_fee + owner_fee > 10"])
于 2012-05-19T09:12:11.467 回答