2017-11-05 23 views
0
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() 

Djangoのpythonで2モデルからデータを取得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 
} 
+0

これまでに何を試みましたか?ドキュメント[here](https://docs.djangoproject.com/en/1.11/topics/db/aggregation/)に多くの例があります –

答えて

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を使用しましたか?

Beacuseでは、Djangoはキーに関連するすべての名前に '_id'を付加します。したがって、キー値を直接使用する場合は、 '_id'を使用してください。

+0

'.filter(User_id__id = 1)'ではないでしょうか? – dm295

+0

@ dm295いいえ..それはちょうどUser_id_idです –

+0

thanks @stack_n_queue –

関連する問題