2013-01-09 269 views
0

如果我有這些模型:過濾Django的查詢集

COLOR_OPTIONS = (
    ('BLA', 'Black'), 
    ('WHI', 'White'), 
    ('RED', 'Red'), 
) 

class Stuff(models.Model): 
    text = models.CharField(max_length=20) 

class Thing(models.Model): 
    stuff = models.ForeignKey(Stuff) 
    color = models.CharField(max_length=3, choices=COLOR_OPTIONS) 

如何使用.filter()根據不同類型的東西,或者不同的顏色來過濾不同Things


如何編寫我的視圖以便我可以篩選所有各種顏色選項以及所有不同的東西選項?這是我的意思,但我不知道如何正確書寫功能..

def filter(request): 
    filter_color = Thing.objects.filter(color=COLOR_OPTIONS) 
    filter_stuff = Thing.objects.filter(stuff=???) 

任何想法讚賞。

回答

0
my_things_based_on_stuff = Thing.objects.filter(stuff__text="some text here") 

my_things_based_on_colors = Thing.objects.filter(color='BLA') 
+0

謝謝你的答案,但我希望它是動態的,這樣我就可以編寫一個視圖來過濾所有不同的顏色選項或不同的東西選項。任何想法來幫助我? –

+0

您是否在尋找'Thing.objects.filter(color = COLOR_OPTIONS,stuff__text =「這裏有些文字」)? – arie

+0

@NickB只是用你的變量替換'BLA'和'一些文本' – YardenST