2012-11-12 35 views
0

這是我的代碼片段,它返回Product1 Product2 Product3 Product4 Product5它們用於在Web應用程序中填充下拉列表。Django查詢返回一組特定的項目

我該如何得到它只返回Product2和Product4?

我被告知在我發佈的另一個問題中使用Queryset.filter方法,但我不確定如何爲多個項目執行此操作?

事實證明這是一個MySQL數據庫(在我以前的問題中,我認爲它是sqlite)。

class Meta: 
    model = ChangeRequest 
    products = [(product.name, product.name) for product in Product.objects.all()] 
    products = [('', '--------')] + products 
    widgets = { 
     'product': forms.Select(choices=products), 
+2

您試圖過濾什麼標準? product2和product4有哪些屬性?他們是某個類別,某些價格等嗎? –

回答

1

要獲得唯一的產品2和產品4,你可以這樣做:

products = [Product.objects.get(name='Product2'), Product.objects.get(name='Product4')] 
products = [(product.name, product.name) for product in products] 

如果這是不太你期待,請註明您想與過濾你的對象的標準答案。

+3

'Product.objects.filter(name__in = ['Product2','Product3',...])'可能會稍微好一點,因爲它只會生成一個查詢 –

相關問題