我是Django和python的新手,我一直在关注Django教程来构建个人项目。
到目前为止,我已经能够在没有重大问题的情况下做到这一点,但是当我需要多个表并需要与它们建立关系时,我们一直在创建models.py。
我有两个表:一个与产品清单相关,另一个与这些产品的平均价格相关
我基本上想要获取表2的记录并添加存储在表1中的平均价格,并且必须使用3个字段完成连接:模型,年份和大小。
当我只查询产品表(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)
很抱歉,如果这些问题听起来很愚蠢......感谢您的帮助!
答案 0 :(得分:0)
拥有Products
个实例后,您还拥有相关的Avg_price
。看看这个:
>>> my_product = latest_products[0]
>>> print my_product.avg_price.year
"prints my_product's price's year"
或者,您可以使用.select_related
queryset方法:
products_prices = Products.objects.all().select_realted('avg_price')
这会回答你的问题吗?