モデルに動的フィールドを作成するにはどうすればよいですか?
株式市場に関連するアプリケーションを書いているとしましょう。ある日に購入し、後日、今日の価格に基づいて利益 (または損失) を確認したいと考えています。私は次のようなモデルを持っています:
class Purchase(models.Model):
ticker = models.CharField(max_length=5)
date = models.DateField()
price = models.DecimalField(max_digits=20, decimal_places=3)
quantity = models.IntegerField()
私がやりたいのは、次のようなモデルを定義することです:
class PurchaseGain(Purchase):
gain = models.DecimalField(max_digits=20, decimal_places=3)
class Meta:
proxy = True
私がこれを行うことができるように:
todays_price = get_price_from_webservice(ticker)
for p in PurchaseGain.objects.get_purchase_gain(todays_price):
print '%s bought on %s for a gain of %s' % (p.ticker, p.date, p.gain)
p.gain は、get_purchase_gain への入力に基づいて動的に計算されます。その場で辞書を作成するだけでなく、モデルを使用したいと考えています。これは、これを渡してフォームを生成したり、インスタンスから変更を保存したりしたいからです。
派生した QuerySet を作成しようとしましたが、循環依存関係が発生しました。これは、Purchase が (カスタム マネージャーを介して) QuerySet について知る必要があり、QuerySet が、Purchase から派生した PurchaseGain をインスタンス化するために必要な反復子を返したためです。
どのようなオプションがありますか?
ありがとう、クレイグ