2015-04-07 207 views
-1

在我的Django應用程序中,我有兩個模型,我不知道如何爲選擇正確的記錄做一個查詢。這是代碼:兩個模型的Django queryset過濾器

class tab1 (models.Model): 
    id_tab1 = models.AutoField(primary_key=True) 
    name = models.CharField(max_length=50) 

class tab2 (models.Model): 
    id_tab1 = models.ForeignKey(tab1) 
    type = models.IntegerField() 

我想選擇具有tab2.type等於某些條件的tab1記錄。我如何在Django中做到這一點?

回答

1
your_queryset = tab1.objects.filter(tab2__type=value) 

請參閱相關的文檔here 幾句話:你可以跨越關係兩種方式(即從一個外鍵的每一端)。 在filter()的指定參數中指定條件。我上面提到的是最簡單的(即平等),但還有更多(例如開始,包含等)。請閱讀here

0

請考慮您的值012存儲在字段type。以下說明了實現您對type=1的需求的一種方法。

filtered_objs = tab1.objects.filter(type=1) 
tab2.objects.filter(tab1__in=filtered_objs) 
+0

您可以通過一些描述什麼是什麼,如何使用它以及鏈接到文檔來改進您的回答。 (我懷疑在第二行也有一個錯字) – Tensibai