Django foreignkey和表一对多关系

2024-10-02 04:20:58 发布

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

我是Django和python的新手,我一直在遵循Django教程来构建一个个人项目。你知道吗

到目前为止,我已经能够做到这一点,没有重大问题,但已经陷入了创作的型号.py当我需要不止一张桌子并且需要与他们建立关系时。你知道吗

我有两个表:一个与产品列表相关,另一个与这些类型产品的平均价格相关

我基本上想要得到表2的记录,并为它们添加存储在表1中的平均价格,连接必须使用3个字段:model、year和size。你知道吗

当我只查询products表(2)时,我按照

latest_products = Products.objects.all().order_by('-date_added')

如何从这个查询中的平均价格表中获得每个产品的平均价格?你知道吗

我已经阅读了这里的文档和许多帖子,但我的生活中仍然有这种混乱

表1(平均价格)

class Avg_price(models.Model):
  model = models.CharField(max_length=50, blank=True)
  size= models.IntegerField(blank=True, null=True)
  year= models.IntegerField(blank=True, null=True)
  price= models.IntegerField(blank=True, null=True)

表2(产品清单)

class Products(models.Model):
  product_id =models.IntegerField(blank=True, null=True)
  location = models.CharField(max_length=200, blank=True)
  date_added= models.DateTimeField(blank=True, null=True)
  status = models.CharField(max_length=50, blank=True)
  model = models.CharField(max_length=50, blank=True)
  size= models.IntegerField(blank=True, null=True)
  year= models.IntegerField(blank=True, null=True)
  price= models.IntegerField(blank=True, null=True)      
  avg_price=models.ForeignKey(Avg_price)

抱歉,如果这个问题听起来很愚蠢。。。谢谢你的帮助!你知道吗


Tags: djangotruesizemodel产品modelsyearnull
1条回答
网友
1楼 · 发布于 2024-10-02 04:20:58

一旦有了Products实例,就有了它们相关的Avg_price。看看这个:

>>> my_product = latest_products[0]
>>> print my_product.avg_price.year
"prints my_product's price's year"

或者,可以使用^{}queryset方法:

products_prices = Products.objects.all().select_realted('avg_price')

这回答了你的问题吗?你知道吗

相关问题 更多 >

    热门问题