0

これがうまくいくはずだと私は理解しています...

   def _balance(self):
        aggregates = self.transactions.aggregate(sum=Sum('amount'))
        sum = aggregates['sum']
        return D('0') if sum is None else sum

しかし、次のエラーが発生します:'Account'オブジェクトには属性'transactions'がありません

モデルトランザクションに関連する名前トランザクションを設定しています。以下の私のモデルを参照してください

class Account(models.Model):
    OPEN, FROZEN, CLOSED = 'Open', 'Frozen', 'Closed'
    status = models.CharField(max_length=32, default=OPEN)
    # For performance, we keep a cached balance
    balance = models.DecimalField(decimal_places=5, max_digits=10,
                                  default=D('0'), null=True)
    #FK
    user = models.OneToOneField(User)

    def _balance(self):
            aggregates = self.transactions.aggregate(sum=Sum('amount'))
            sum = aggregates['sum']
            return D('0') if sum is None else sum


class Transaction(models.Model):
    account = models.ForeignKey('Account',
                                related_name='transactions')

モデル関数が機能しない理由は何ですか?

ありがとうございました。

4

0 に答える 0