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

问题描述

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

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

如何实现?

解决方法

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

快乐编码