2017-06-16 7 views
0

を設定します。Djangoのクエリは、私はこのようなセットモデルを持っている

class Category(models.Model): 
    name = models.CharField() 

class CarModel(models.Model): 
    name = models.CharField() 
    category = models.ForeignKey(Category, on_delete=models.CASCADE) 

class Car(models.Model): 
    owner = models.ForeignKey(User, on_delete=models.CASCADE) 
    car_model = models.ForeignKey(CarModel, null=True, on_delete=models.CASCADE) 

どのように私は、現在のユーザーが所有している車のすべてのカテゴリを設定し、クエリを得ることができますか?

ありがとうございます! T

+0

あなたは何を試してみましたか?ドキュメントの例をhttps://docs.djangoproject.com/en/1.11/topics/db/queries/#lookups-that-span-relationshipsでお読みになりましたか? –

+0

クエリのdocページに2つの深い外部キーの例がありません。興味深いことに、.values()は参照されません。 Fazilの投稿後、私はこのリンクが役に立つことを発見しました:[https://docs.djangoproject.com/en/1.11/ref/models/querysets/#django.db.models.query.QuerySet.values](https://docs) .djangoproject.com/ja/1.11/ref/models/querysets /#django.db.models.query.QuerySet.values) – Tsmith

答えて

0

あなたが行うことができ、

Car.objects.filter(owner=request.user).select_related('car_model__category').all() 
+0

Sweet!私が探していたものを得るために.distinct()を追加しました。 Car.model__filter(owner = request.user).values( 'car_model__category__name')。distinct() – Tsmith

+0

サポートマンに感謝します! – zaidfazil

+0

または、それは 'value_list'、@ Tsmith' Car.objects.filter(owner = request.user).values_list( 'car_model__category__name'、flat = True)で行うことができます。 –

関連する問題