从 Django 中的 2 个模型获取数据 python
Get data from 2 Model in Django python
class Product(models.Model):
name = models.CharField(max_length=200)
price = models.FloatField()
avgrating = models.FloatField()
def __str__(self):
return self.name
class Rating(models.Model):
Product_id = models.ForeignKey('Product', related_name='Product_id')
User_id = models.ForeignKey('User', related_name='User_id')
rate = models.IntegerField()
我想要喜欢
- 产品名称
- 产品价格
- avgrating(平均评分)
- 取决于 User_id 和 Product_id 以及
SQL 查询如:
select p.name,p.price,p.avgrating,r.rate from Product p, Rating r where User_id=1;
出赞:
在json中形成
{
"name":"Iphone 8",
"Price":80000,
"avgrating":3.5,
"rate":5
}
results = Rating.objects.filter(User_id_id = 1)
data = []
for res in results:
data.append( {
"name": res.Product_id.name,
"Price": res.Product_id.price,
"avgrating": res.Product_id.avgrating,
"rate": res.rate
})
为什么我使用 User_id_id?
因为,Django 会为与键相关的所有名称附加“_id”。因此,如果您直接使用键值,请使用'_id'。
class Product(models.Model):
name = models.CharField(max_length=200)
price = models.FloatField()
avgrating = models.FloatField()
def __str__(self):
return self.name
class Rating(models.Model):
Product_id = models.ForeignKey('Product', related_name='Product_id')
User_id = models.ForeignKey('User', related_name='User_id')
rate = models.IntegerField()
我想要喜欢 - 产品名称 - 产品价格 - avgrating(平均评分) - 取决于 User_id 和 Product_id 以及
SQL 查询如:
select p.name,p.price,p.avgrating,r.rate from Product p, Rating r where User_id=1;
出赞:
在json中形成
{
"name":"Iphone 8",
"Price":80000,
"avgrating":3.5,
"rate":5
}
results = Rating.objects.filter(User_id_id = 1)
data = []
for res in results:
data.append( {
"name": res.Product_id.name,
"Price": res.Product_id.price,
"avgrating": res.Product_id.avgrating,
"rate": res.rate
})
为什么我使用 User_id_id?
因为,Django 会为与键相关的所有名称附加“_id”。因此,如果您直接使用键值,请使用'_id'。