开始Django:通过外键访问元素

2024-05-13 22:14:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我最近开始使用django,现在已经有一段时间了。 我创建了三个模型:

class Depot(models.Model):
    depot_name = models.CharField(max_length = 200)
    def __str__(self):
        return self.depot_name

class Stock(models.Model):
    stock_key = models.CharField(max_length = 200)
    company_name = models.CharField(max_length = 200)
    price = models.FloatField()
    def __str__(self):
        return self.company_name
    def get_price(self):
        return self.price

class Asset(models.Model):
    depot = models.ForeignKey(Depot, on_delete= models.CASCADE)
    stock = models.ForeignKey(Stock, on_delete= models.CASCADE, related_name="testName")
    number_of_stocks = models.IntegerField(default=0)
    def value(self):
        p = self.testName.price
        return p*self.number_of_stocks
    def __str__(self):
        return str(self.stock)+" "+str(self.number_of_stocks)+" "+str(self.value())

基本上要计算一项资产的价值,我需要它的股票价格。我没有找到任何关于如何通过ForeignKey访问类股数据的方法。也许是为了琐碎。我非常感谢你的帮助


Tags: nameselfmodelreturnmodelsdefstocklength
1条回答
网友
1楼 · 发布于 2024-05-13 22:14:39

它应该是微不足道的

def value(self):
    p = self.stock.price
    return p*self.number_of_stocks

外键上的related_name用于访问关系的另一端,即

class Stock(...):
    ...
    def some_method(self):
        assets = self.testName.all()

如果您没有定义related_name="testName",那么上面的最后一行需要

assets = self.asset_set.all()

相关问题 更多 >