首页 > 解决方案 > 如何根据 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 的,而是所有股票的价格值,用户可以从中选择哪个是错误的。我想根据用户股票名称设置价格值进行买卖。

如何做到这一点?

标签: python-3.xdjango-modelsdjango-rest-frameworkrelationship

解决方案


贸易类(models.Model):
stock_model_obj = models.IntegerField(空白=假,可编辑=真)

然后您可以轻松地轻松轻松地所有库存对象字段。

假设实例是贸易模型的 obj,那么您可以直接使用 instance.stock_model_obj.price 或 instance.stock_model_obj.whatever_field_of_Stock

PS如果股票模型有其他外键,你也可以使用进一步的连接

快乐编码


推荐阅读