2016-12-21 3 views
0

料金モデルの料金から支払額を減算しようとしています。私は保存時に自動的にバランスを取るが、サポートされていないエラーが発生するように、以下の計算を行います。手数料モデルからの戻り値は支払われるべき総額です。別のモデルからの入力に基づいてdjangoでの計算を行いますが、エラーが発生しました

のためのサポートされていないオペランドのタイプ(S):ここで私が得ているエラーです - : '手数料' と「int型

class Payment(models.Model): 

    fee = models.ForeignKey(Fees) 

    installment = models.CharField(
     _('Installment'), 
     max_length=30, 
     choices=INSTALLMENT_CHOICES, 
     default=u' ', 
     null=False, 
     blank=False 
    ) 

    amount = models.IntegerField(
     _('Amount'), 
     null=False, 
     blank=False 
    ) 

    balance = models.IntegerField(
     _('Balance'), 
     null=True, 
     blank=True 
    ) 

    def save(self, *args, **kwargs): 
     self.balance = self.fee - self.amount 
     return super(Payment, self).save(*args, **kwargs) 

答えて

0

self.feeはあなたにFeesモデルから関連するモデルオブジェクトを提供します。だから、アクセスしてFeesモデルのfeeフィールドで計算を行う必要があります:あなたは、将来的にさらなる混乱を避けるためにamountを言ってFeesモデル内のフィールドの名前を変更することができ

self.balance = self.fee.fee - self.amount 
#      ^^^ 

self.fee.amount確実に読みやすくなります。

関連する問題