2017-06-16 90 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) 

我怎樣才能得到一個查詢與當前用戶擁有的汽車的所有類別設置?

謝謝! 牛逼

+0

你嘗試過什麼?您是否閱讀過文檔中的示例https://docs.djangoproject.com/en/1.11/topics/db/queries/#lookups-that-span-relationships? –

+0

查詢文檔頁面似乎沒有兩個深層的外鍵示例,有趣的是,它沒有引用.values()。在Fazil發佈後,我發現這個鏈接很有用:[https://docs.djangoproject.com/en/1.11/ref/models/querysets/#django.db.models.query.QuerySet.values](https://docs .djangoproject.com/en/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

甜!我添加了.distinct()以獲得我正在尋找的內容。 Car.objects.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)來完成' –