我有两种股票和贸易模型。
class Stock(models.Model):
name = models.CharField(max_length=15, blank=False, primary_key=True)
price = models.IntegerField(blank=False, editable=True)
class Trade(models.Model):
id = models.AutoField(primary_key=True, auto_created=True, editable=False, )
name = models.ManyToManyField(Stock, related_name='stock_name')
trade_choice = [
(1, 'BUY'),
(0, 'SELL')
]
type = models.CharField(choices=trade_choice, default='BUY', max_length=5)
quantity = models.IntegerField(blank=False, )
price = models.ForeignKey(Stock, on_delete=models.CASCADE, related_name='stock_price')
Trade.price作为外键的问题在于,当用户选择Trade.name作为“ APPLE”来购买价格时,该价格将不是APPLE,而是用户可以选择的所有股票的价格值。错误。我想根据要买卖的用户股票名称设置价格值。
如何实现?
答案 0 :(得分:0)
Class Trade(models.Model):
stock_model_obj = models.IntegerField(blank = False,editable = True)
然后您可以轻松地轻松访问stock obj的所有字段。
假设实例是交易模型的obj,则可以直接使用instance.stock_model_obj.price或instance.stock_model_obj.whatever_field_of_Stock
P.S。如果股票模型具有其他外键,还可以使用其他联接
快乐编码