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

快乐编码

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...