【发布时间】:2021-10-22 04:45:07
【问题描述】:
我有一个 Ticker 模型 -
class Ticker(models.Model):
symbol = models.CharField(max_length=50, primary_key=True)
company_name = models.CharField(max_length=50)
def __str__(self) -> str:
return f'{self.symbol}-{self.company_name}'
和
class Model(models.Model):
ticker = models.ForeignKey(Ticker, on_delete=models.CASCADE)
test_loss = models.FloatField(null=True)
def __str__(self) -> str:
return f'{self.ticker.symbol}'
我想把这个函数加到模型上-
def predict(self, pred_date):
return self.backend_model.predict(pred_date)
在哪里-
self.backend_model = LstmModel(self.ticker.symbol)
如何在实例化过程中只将这个backend_model 添加到Model 一次?
这些是我想到的解决方案-
- 拥有一个自定义模型管理器。
- 覆盖模型的
save()方法。 - 为模型添加
classmethod
我应该使用哪个,或者是否有人可以提出更好的方法?
【问题讨论】:
-
LstmModel(symbol)中的symbol是什么?从 Model 实例的角度来看是self.ticker.symbol吗? -
@ViggieSmalls 是的!
标签: python django django-models django-queryset