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

4

2 に答える 2

17

または、式を使用するために単純に変換a + b > cします。a > c - bmodels.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 に答える