2016-08-23 11 views
0


私のコードにいくつか問題があります。私はそれを解決する必要がある探していたが、私は同様の問題を見つけることはありませんでした。複数回フィールド値を合計したいが、タイトルからエラーが出る。この問題を解決しなければなりませんか?私はそれがデータ型の問題だと思うが、私は方程式を定義する方法を知らない。私を助けてください。Djangoエラー:*: 'NoneType'と 'float'に対応していないオペランドタイプ

class Bill(models.Model): 
    date = models.DateField(default=datetime.now()) 
    tax = models.FloatField(default=0.20) 
    priceNoTax = models.IntegerField()#integer that I get from other class 
    priceTax = models.FloatField() 
    idAccount = models.ForeignKey(Account, on_delete=models.CASCADE, verbose_name="Account") 

    def save(self, *args, **kwargs): 
     if self.priceTax is None: 
      self.priceTax = self.priceNoTax+(self.priceNoTax*self.tax)#here is an error 
     super(Bill, self).save(*args, **kwargs) 

    def __str__(self): 
     return self.date 

ありがとうございます!

+1

'priceTax'がNoneであるかどうかチェックしましたが、' priceNoTax'がNoneであるかどうかはチェックしていません。これは明らかです。 –

答えて

0

エラーメッセージの引数の順序コードに対応:

'NoneType' and 'float' < =>self.priceNoTax*self.tax

self.priceNoTaxが初期化されていないか、またはデータベースからこれをロードした場合、それはNULLを含んでいました。これは、乗算が行われる前に、self.priceNoTaxの内容のprintで確認できます。

self.priceNoTaxがどのように設定されているかを確認してください。

関連する問題