私はコストを含む私の資産を表す次のModelクラスを持っています。ノードModelFieldクラスを作成せずに、単一のフィールドの__str __()メソッドをオーバーライドするにはどうすればよいですか?
class Asset(models.Model):
name = models.CharField(max_length=64)
cost = models.DecimalField(max_digits=12, decimal_places=2, default=0.00)
def __str__(self):
return self.name
Asset.cost
の__str__()
メソッドをオーバーライドする方法はありますか?
私の目標は、整数のプロパティを保持しながら通貨記号を含むcost
の出力を持つことです。
例:
obj.cost = 10.00
print(obj.cost) # should return $10.00
print(obj.cost + 10) # should still be possible
# and should return 20.00 (without currency symbol,
# because it is a regular integer now)
'obj.cost'は単なる[' Decimal'](https://docs.python.org/3/library/decimal.html#decimal.Decimal)インスタンスです。組み込みの 'Decimal'クラスの' __str__'メソッドをオーバーライドすることはお勧めできません。ユーティリティ関数を使用して、小数点を通貨記号で印刷することができます。 – knbk