如何基于Django Python中的一个字段值设置另一个字段的值

时间:2020-08-11 04:44:26

标签: python-3.x django-models django-rest-framework relationship

我有两种股票和贸易模型。

 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,而是用户可以选择的所有股票的价格值。错误。我想根据要买卖的用户股票名称设置价格值。

如何实现?

1 个答案:

答案 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。如果股票模型具有其他外键,还可以使用其他联接

快乐编码