【问题标题】:Get data from 2 Model in Django python从 Django python 中的 2 模型获取数据
【发布时间】:2018-04-17 14:10:10
【问题描述】:
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()

我想要喜欢 - 产品名称 - 产品价格 - 平均(AVG评级) - 依赖于 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
}

【问题讨论】:

  • 向我们展示您到目前为止的尝试?文档中有很多例子here

标签: python django orm django-rest-framework models


【解决方案1】:
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”。

【讨论】:

  • 不应该是.filter(User_id__id=1)吗?
  • @dm295 no.. 这只是 User_id_id
猜你喜欢
  • 2020-09-19
  • 2023-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-11
  • 2022-11-27
  • 2018-07-02
  • 2017-05-05
相关资源
最近更新 更多